Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Amateu en 11 de Abril 2016, 13:17
-
Paso el código del ejercicio CU00657B del tutorial básico de programación en Java:
/**
* 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.
-
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:
....
....
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.