Java - Problema de novato con Strings

   
Vista:

Problema de novato con Strings

Publicado por Nahuel (2 intervenciones) el 20/01/2008 16:25:42
Hola, soy novato en java, el tema es que tengo un problema con la comparacion de Strings

Lo que nececito es comparar 2 Strings, de los cuales uno es constante y el otro lo ingreso mediante el System.in.read()

El codigo es el siguiente:

package miPackage;

import java.io.IOException;

public class Comparacion {
public static void main (String args []) throws IOException{
final String elNombre = new String("Nahuel");
int c;
String entrada = new String();
while ( (c = System.in.read() ) != ' ' ){
entrada = entrada + (char)c;
}

if ( !(entrada == elNombre) ){
System.out.println("Nombres distintos");
}

return;
}

}

La cuestiion es que si yo ingreso "Nahuel" en la consola (sin las comillas claro) me devuelve "Nombres Distintios"
Y si le agrego:
System.out.print(elNombre);
System.out.print(entrada);

Imprime:
Nombres distintos
Nahuel
Nahuel


Perdon por la pregunta de novato, pero necesito saber.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema de novato con Strings

Publicado por bruno pasquini (88 intervenciones) el 20/01/2008 17:48:32
se compara los strings con .matches("la cadena")==true

pd: la tercera vez q digo esto en el foro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema de novato con Strings

Publicado por Nahuel (2 intervenciones) el 20/01/2008 18:33:44
Perdon, habia cambiado el codigo y quedo "entrada == elNombre"

Lo que quise decir es que no me funciona con "enrada.equals(elNombre)"

Quedaria asi:

package miPackage;

import java.io.IOException;

public class Comparacion {
public static void main (String args []) throws IOException{
final String elNombre = new String("Nahuel");
int c;
String entrada = new String();
while ( (c = System.in.read() ) != ' ' ){
entrada = entrada + (char)c;
}

if ( !(entrada.equals(elNombre)) ){
System.out.println("Nombres distintos");
}

return;
}

}

Tambien probe enrada.matches(elNombre) pero nada, siempre me devuelve que son distintos

Gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema de novato con Strings

Publicado por chuidiang (949 intervenciones) el 21/01/2008 07:23:53
Hola:

Es posible que el problema sea el retorno de carro del final. Quizás al leer de teclado leas Nahuel si estás en windows.

Para leer líneas sin retorno de carro, usa mejor esto

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String cadenaLeida = bf.readLine();

Puedes ver esto algo más detallado en http://www.chuidiang.com/java/novatos/entrada_standard_java.php

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar