Autor Tema: Java uso de operador '==' no es correcto usarlo con objetos tipo String CU00657B  (Leído 2343 veces)

Amateu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Paso el código del ejercicio CU00657B del tutorial básico de programación en Java:

Código: [Seleccionar]
/**
 * De la lección CU00657B
 *
 * @author amateu
 * @version 11/04/2016
 */
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java

public class TestCadena {
       
    public static void main (String [ ] args)
    {
        System.out.println ("Vamos a analizar la longitud de la cadena y si empieza por a");
        System.out.println ("Por favor introduzca una cadena por teclado:");
        String entradaTeclado = "";
        String longitud = "";
        String sinlaa = "";
        Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
        if (entradaTeclado.length() < 5)
            {
            longitud = "menos de 5 ";
            } else
                { if (entradaTeclado.length() <= 15)
                    {
                        longitud = "entre 5 y 15 ";
                    } else { longitud = "más de 15 ";}
                }                   
        String letrainicial = entradaTeclado.substring(0,1);
        if (letrainicial.equals("a")) //Se ha introducion el método equals porque con == no funciona
            {
              sinlaa = "";
            } else { sinlaa = "no ";}
        System.out.println ("La cadena introducida tiene " + longitud +"caracteres y "
            + sinlaa + "comienza por a.");
    }//Cierre del main
} //Cierre de la clase

La verdad es que me he vuelto un poco loco con no poder utilizar == con los strings, y no lo acabo de entender muy bien.
Gracias.
« Última modificación: 12 de Abril 2016, 20:46 por Alex Rodríguez »

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:Pedir datos de java por consola. Ejercicio CU00657B.
« Respuesta #1 en: 12 de Abril 2016, 03:07 »
Hola Amateu:

Estuve revisando tu ejercicio y lo veo perfecto! Cumple con lo que pide el ejercicio.

Respecto al uso del operador '==' no es correcto usarlo con los objetos tipo String. Para comprobar igualdad de un objeto tipo String se debe usar el método 'equals' de la clase Object (a la cual pertenecen todos los objetos, incluídos los tipo String).

Ejemplo: Podemos incluír un condicional if más en tu código de la siguiente manera:

Código: [Seleccionar]
....
....
Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
       
        if(entradaTeclado.equals("java")){
            System.out.println("La palabra ingresada es 'java'");
        }
       
        if (entradaTeclado.length() < 5)
            {
            longitud = "menos de 5 ";
....
....

Lo que haría este agregado es que si la palabra ingresada es "java" nos lo indicará por consola. Si no lo fuese, no habrá ninguna indicación.

Analízalo y cualquier duda estamos aquí para reveerlo.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".