Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: adrit en 08 de Julio 2015, 04:46

Título: Java dice que dos letras no son iguales pero sí son iguales? Ejercicio CU00657B
Publicado por: adrit en 08 de Julio 2015, 04:46
Hola! Respuesta al ejercicio CU00657B:

Código: [Seleccionar]

import java.util.Scanner;

public class ScannerTest {
    public static void main (String[] args) {
        String entradaTeclado = "";
        Scanner scanner1 = new Scanner (System.in);
        System.out.println ("Ingrese una cadena");
        entradaTeclado = scanner1.nextLine();
       
       //contador de letras
        if (entradaTeclado.length() < 5 ) {
            System.out.print("La cadena ingresada contiene menos de 5 letras");
        } else if (entradaTeclado.length() >= 5 && entradaTeclado.length() <= 15) {
            System.out.print("La cadena ingresada contiene entre 5 y 15 letras");
        } else System.out.print("La cadena ingresada contiene mas de 15 letras");
       
        //comprueba si empieza con o sin "a" minúscula o mayúscula
        if (entradaTeclado.substring(0,1).startsWith("a") || entradaTeclado.substring(0,1).startsWith("A")) {
            System.out.println (" y empieza con \"a\"");
        } else System.out.println (" y no empieza con \"a\"");
    }
}

Suponiendo que el código sea correcto me podrían explicar porque no me funcionó esta sentencia?

Código: [Seleccionar]

if (entradaTeclado.substring(0,1) == "a" || entradaTeclado.substring(0,1) == "A") {
            System.out.println (" y empieza con \"a\"");
        } else System.out.println (" y no empieza con \"a\"");


Gracias!
Título: Re:Ejercicio (CU00657B) Pedir datos en Java por consola resuelto
Publicado por: Lorenzo31 en 08 de Julio 2015, 12:50
Buenas, en principio lo veo correcto, sintaxis y todo correcto.

Sobre tu pregunta, el == se usa en números para comparar texto se usa equals

Código: [Seleccionar]
if (entradaTeclado.substring(0,1).equals"a" || entradaTeclado.substring(0,1).equals"A") {
            System.out.println  (" y empieza con \"a\"");
        } else System.out.println (" y no empieza con \"a\"");
Título: Re:Ejercicio (CU00657B) Pedir datos en Java por consola resuelto
Publicado por: adrit en 08 de Julio 2015, 15:07
Muchas gracias!