| |||
problemas con un indexOf hola estoy buscando un rut que está en un arreglo en una cadena de entrada y no lo encuentra, sin embargo le pongo el valor en el parámetro y lo encuentra, que será lo que pasa????? adjunto el código a ver si alguien le encuentra el detalle import java.util.*; import java.io.*; class Test{ public static void main(String arg[]){ try{ String lin,l; String rut[]= {"14985365-7","12478965-8","6257865-8","11789365-4","7854369-K"}; String descuento[]={"C1 5%","C2 10%","C3 15%","C4 20%"}; String productos[]={"P-1 $1000","P-2 $2000","P-3 $3800","P-4 $4600"}; int r=0,i; BufferedReader bf; bf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Ingrese cliente, rut, tipo cliente, tipo producto y cantidad\n Ejemplo:\nPamela Soto 14985365-7 C1 P-3 7 "); lin = bf.readLine(); for(i=0; i<rut.length; i++) { l=rut[i]; r = lin.indexOf(l); } System.out.println("Rut es igual a: " + r); }catch (IOException e){ System.out.println("Error en Ingreso de Teclado"); } } } |
| |||
re: buscando el rut hola, bueno, varias cosas.. tu mensajes no es muy claro. si lo que quieres es encontrar la cadena especifica que este en tu arreglo "rut". tu ciclo esta revisando todas y obtiene solo la ultima posicion. ademas, la funcion indexOf me obtiene la posicion en el String, de lo que estoy buscando, no la posicion en tu arreglo. lo que esta en negrita son varios cambios que hice: reponde si eso es lo que querias o explicate mejor. saludos, import java.util.*; import java.io.*; class Test{ public static void main(String arg[]){ try{ String lin,l; String rut[]= {"14985365-7","12478965-8","6257865-8","11789365-4","7854369-K"}; String descuento[]={"C1 5%","C2 10%","C3 15%","C4 20%"}; String productos[]={"P-1 $1000","P-2 $2000","P-3 $3800","P-4 $4600"}; int r=0,i; BufferedReader bf; bf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Ingrese cliente, rut, tipo cliente, tipo producto y cantidad\n Ejemplo:\nPamela Soto 14985365-7 C1 P-3 7 "); lin = bf.readLine(); r=-1; // debe iniciar en -1 porque no ha encondrado nada valido for(i=0; i<rut.length; i++) { l=rut[i]; r = lin.indexOf(l); if(r!=-1) break; // si encuentra la posicion termine el ciclo } // crear un separador de string con la cadena que necesito a partir de la posicion r StringTokenizer tokens=new StringTokenizer(lin.substring(r)); //imprima mi cadena hasta el proximo espacio en blanco System.out.println("Rut es igual a: " + tokens.nextToken(" ")); //arrojara una excepcion si no encontro ningun rut valido. }catch (IOException e){ System.out.println("Error en Ingreso de Teclado"); } } } |
| |||
entonces deeberias probar las modificaciones hechas, si esta lo muestra, si no arroja una Excepcion. saludos |