substring y equals???

melly16_07
06 de Julio del 2006
tengo un programa aki pero nose muy bien, y no entiendo como funcionan el equals y el substring, no esta muy claro para mi, un apregunta mas si en vez de ingresar los nombres en el programa tuviera ya un arreglo de nombres como rehago el programa?
import java.io.*;
import javax.swing.*;

class Nombre {

public static void main(String[] args) throws IOException{

String nom[] = new String[4];
String no,c;
int x,y=0;

InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader te=new BufferedReader(isr);


for (x=0;x<4;x++){

System.out.print("Ingresar nombre: ");
nom[x]=te.readLine();
}

System.out.print("n");
System.out.print("Ingrese el primer caracter del nombre a buscar: ");
no = te.readLine();

for (x=0;x<4;x++){

c = nom[x].substring(0,1);//metodo para capturar un caracter y E A STRING
if (c.equals(no)) {
System.out.println(nom[x]);
y=y+1;
}
}
System.out.print("Elementos encontrados: "+y+"n");
}
}

xerox01
06 de Julio del 2006
Hola como va??
con el metodo substring obtiene un nuevo string formado por los caracteres segun se indica en los parametros.
En tu caso te retornara el string formado por la primer letra del string dado que pusiste los valores (0,1). Ahora si queres obtener los primeros 3 tenes que poner (0,3).

Genericamente es asi
(posicion de inicio, num. de caracteressubsiguientes).

Respecto a Equals (de la clase String), te compara si dos cadenas son iguales:
Ejemolo \\\"abcde\\\".equals(\\\"abcde\\\")? retornara true
\\\"abcde\\\".equals(\\\"aeCde\\\")? retornara false.

Con respecto al codigo a cambiar, el metodo main queda:

public static void main(String[] args) throws IOException{

String nom[] ={\\\"CADENA1\\\",\\\"CADENA2\\\",\\\"ADENANULL\\\",\\\"CADENA3\\\",\\\"CADENA3\\\"};
String no,c;
int x,y=0;

InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader te=new BufferedReader(isr);

System.out.print(\\\"Ingrese el primer caracter del nombre a buscar: \\\");
no = te.readLine();

for (x=0;x<nom.length;x++){

c = nom[x].substring(0,1);//metodo para capturar un caracter y E A STRING
if (c.equals(no)) {
System.out.println(nom[x]);
y=y+1;
}
}
System.out.print(\\\"Elementos encontrados: \\\"+y+\\\"\\\\n\\\");
}

Lo unico que hice fue sacar el codigo para ingresar cadenas. Luego iniciar nom con 4 cadenas(Esto puede variar) no va a tirar error debido al método length que use para que no lea lugares que no existen

Bueno, espero que te sea de ayuda.

xerox01
06 de Julio del 2006
CUANDO LEAS NO TOMES EN CUENTA LAS BARRAS INVERTIDAS \\\ de mi respuesta anterior.