Foros del Web » Programación para mayores de 30 ;) » Java »

problemas con un indexOf

Estas en el tema de problemas con un indexOf en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/09/2006, 20:24
 
Fecha de Ingreso: octubre-2004
Mensajes: 34
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta 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");

}

}

}
  #2 (permalink)  
Antiguo 26/09/2006, 07:48
 
Fecha de Ingreso: septiembre-2006
Mensajes: 32
Antigüedad: 17 años, 7 meses
Puntos: 0
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");

}

}

}
  #3 (permalink)  
Antiguo 27/09/2006, 13:10
 
Fecha de Ingreso: octubre-2004
Mensajes: 34
Antigüedad: 19 años, 6 meses
Puntos: 0
quiero buscar dentro de una línea un valor que puede estar dentro de un arreglo, en el fondo es buscar rut por rut y ver si está contenido en la línea
  #4 (permalink)  
Antiguo 27/09/2006, 13:13
 
Fecha de Ingreso: septiembre-2006
Mensajes: 32
Antigüedad: 17 años, 7 meses
Puntos: 0
Cita:
Iniciado por alrc Ver Mensaje
quiero buscar dentro de una línea un valor que puede estar dentro de un arreglo, en el fondo es buscar rut por rut y ver si está contenido en la línea
entonces deeberias probar las modificaciones hechas, si esta lo muestra, si no arroja una Excepcion. saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:57.