Java - problemas con String

 
Vista:

problemas con String

Publicado por Cristina (1 intervención) el 09/04/2007 04:26:59
Hola, lo que sucede es que estoy haciendo un programa en el cual se debe ingresar un argumento, por dar un ejemplo AAA, este argumento lo utilizo para hacer una comparación, algo como:
String A = args[0]; // Se le asigna a la variable A el argumento en este caso "AAA"
if (A == "AAA")
System.out.println(A);

el anterior codigo deberia imprimir AAA pero esto no ocurre, ya probé haciendo

A = "AAA";
if (A == "AAA")
System.out.println(A);

y de esta manera si funciona, pero recibiendo el argumento no!
Si alguien me puede decir que es lo que está pasando le agradezco mucho, porque no entiendo que es lo que pasa si se sabe que un argumento ingresado es un String.

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:problemas con String

Publicado por Clayder (25 intervenciones) el 09/04/2007 05:43:33
Hola:

Me parece que deberias usar el metodo equals() o compareTo() para comparar un String, ya que no se trata de un tipo de dato primitivo como char o int. En este caso quedaria algo como esto:

Usando equals():

String A = args[0];
if (A.equals("AAA"))
System.out.println(A);

Usando compareTo():

String A = args[0];
if (A.compareTo("AAA")==0)
System.out.println(A);

Puedes revisar la documentacion de la API de Java para que veas los metodos de la clase java.lang.String.

Espero haberte ayudado.

Saludos.
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:problemas con String

Publicado por galeginho (34 intervenciones) el 09/04/2007 11:06:17
lo que te pasa es que los strings hay que compararlos con equals xk el = de strings compara posiciones de memoria, por lo que solo dara true si ambos strings referencian a la misma memoria, por eso te funciona en el segundo caso.

haz:

if ( A.equals("AAA") ){
....
}

bueno mejor haz:

if ( "AAA".equals(A) ){
...
}

para evitarte posibles null pointer exeptions

1saludo
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