Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

309
Vistas
usando java, encuentre si la ocurrencia de una letra dada del rango dado si la ocurrencia es verdadera para la cadena

Usando Java, encuentre si la ocurrencia de la letra del rango dado es verdadera para la cadena. Tengo una lista de estas cadenas que tienen el siguiente formato: hay más, pero aquí hay algunos ejemplos.

9-11 w: wwtxmsjwjwlw separate to: 9-11//int-int/range , w //char/letter , wwtxmsjwjwlw//string we are checking --false

5-6 g: wggghg separate to 5-6 , g , wgggghg --true

1-5 g: dxggdggb seperate to 1-5 , g , dxggdggb --true

5-13 f: lfgdplfffxffswck separate to 5-13 , f, lfgdplfffxffswck --true

6-7 z: zzzzgzzzz separate to 6-7 , z , zzzzgzzzz -- check if z is repeated 6-7 times in string zzzzgzzzz which here z is repeated 8 times so its not true --false estos son ejemplos de cadenas dadas que se dividen en 3 partes diferentes que comparten el mismo índice en las diferentes matrices en las que las puse. El objetivo de la pregunta es tomar la ocurrencia de letra/caracter, básicamente verificando si la ocurrencia del rango dado int-int es verdadera en el la cadena es verdadera, entonces cnt ++, no es verdad, no pasa nada, cnt no cambia. -pero quiero verificar si la letra que aparece en el rango dado a la cadena es verdadera- si esto tiene sentido. aquí está mi intento de codificarlo:

 public static Scanner reader= new Scanner(System.in); public static void main(String[] args){ int g=1000,cnt2=0; String[] a1 = new String[g]; String[] a2 = new String[g]; String[] a3 = new String[g]; int cnt=0; String regexp = "(?<one>\\d+-\\d+)\\s*(?<two>\\w+)\\s*:\\s*(?<three>\\w+)"; for(int i=0;i<10000;i++) { String str = reader.nextLine(); cnt++; Pattern pattern = Pattern.compile(regexp); Matcher matcher = pattern.matcher(str); if (matcher.matches()) { a1[i]= matcher.group("one"); a2[i]= matcher.group("two"); a3[i]= matcher.group("three"); } if(a3[i].matches("[a2[i]{a1[i]}")==true) {//("[a2[i]{a1[i]}") --a1[i] is error since its int-int and not int,int cause in regex range is {int, int} so how can i change that - to ,or change it so it works? cnt2++; } } System.out.println(cnt); System.out.println(cnt2); }

Se supone que cnt2 me diga cuántas de las entradas coinciden con la ocurrencia de esa letra específica, no funciona, por lo que agradecería la ayuda, hágame saber si hay formas más eficientes que mi idea con las matrices. Ayuda para mejorar la pregunta también sería útil gracias

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

acabo de resolver esta pregunta con el siguiente código para aquellos que estén interesados:

 public static Scanner reader= new Scanner(System.in); public static void main(String[] args){ int cnt2=0; String a1=""; String a2=""; String a3=""; int cnt=0; String regexp = "(?<one>\\d+-\\d+)\\s*(?<two>\\w+)\\s*:\\s*(?<three>\\w+)"; Pattern pattern = Pattern.compile(regexp); String str = reader.nextLine(); while (!str.equals("-1")) { System.out.println(str); cnt++; Matcher matcher = pattern.matcher(str); if (matcher.matches()) { a1= matcher.group("one"); a2= matcher.group("two"); a3= matcher.group("three"); } int min=Integer.parseInt( ""+ a1.split("-")[0]); int max=Integer.parseInt( ""+ a1.split("-")[1]); int acurences =("!"+a3+"!").split(a2).length-1; if(acurences>=min &&acurences<=max) { cnt2++; } str = reader.nextLine(); } System.out.println(cnt); System.out.println(cnt2); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda