English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Todas las categorías

Teniendo esta porcion de codigo:
String linea=scanf(); //metodo que lee del teclado
if(linea=="hola") return true;

Al escribir exactamente la palabra hola en la consola, el if nunca se ejecuta porque considera el "hola" de linea distinto al de la condicion if. Sera que al escribir hola en la consola y darle un enter me asigne junto a la palabra un caracter salto de linea???
Como soluciono esto????

2006-11-03 23:06:59 · 5 respuestas · pregunta de Yacko 2 en Ordenadores e Internet Programación y Diseño

5 respuestas

En java , si tratas de comparar dos cadenas con == , en realidad lo que le estas preguntando a java es si los dos "objetos" que comparas son el mismo(no en el sentido de si tienen el mismo valor , sino si son la misma referencia en la maquina virtual).

Para hacer lo que quieres es con
if (linea.equals(new String("hola"))) return true ;

2006-11-03 23:36:50 · answer #1 · answered by mxpengin 3 · 1 0

Las comparaciones de instancias de objetos a otro objeto no se puede hacer con un simple == en el caso de String hay un algunos metodos de comparacion que te regresan un valor booleano o un entero. En tu ejemplo lo que debes hacer es:

if( linea.compareTo( "hola" )==0 ) // si al comparar ambas cadenas el valor es 0 es cierto

o bien,

if( linea.equalsIgnoreCase( "hola" ) ) // no discrimina si son mayusculas o minusculas y de ser cierto regresa un true

2006-11-04 13:49:52 · answer #2 · answered by sonfarX 4 · 1 0

no se

2006-11-04 07:32:35 · answer #3 · answered by Anonymous · 0 1

Hola:

te recomiendo que desistales la consola java lo vuelvas ha descargar e instalar, si ase lo mismo despues del procedimiento puede que sea error de plataforma o sistema operativo.

2006-11-04 07:12:36 · answer #4 · answered by Jorge 2 · 0 1

fijate cual es la verdadera palabra escrita mostrando la variable en pantalla.

2006-11-04 07:11:36 · answer #5 · answered by Joaco 4 · 0 1

fedest.com, questions and answers