Autor Tema: Comparar Strings en Java con == no funciona usar equals (CU00657B)  (Leído 5442 veces)

5378453

  • Principiante
  • **
  • Mensajes: 56
    • Ver Perfil
    • Mugiwara no Fansub
Este ejercicio yo tuve un problema, ya que pedia que pusiera si la cadena iniciaba con "a" , pero cuanto intente poner if(cadena == "a") para ver si la cadena iniciaba con "a" no me dejaba  y no sabia que hacer ya que en el curso no habian explicado como comparar un string y tuve que investigar para poder hacer una comparacion con cadenas.

quisiera saber si existe otra forma de comparar String que no sea el equals que hayan explicado antes en el curso, ya que no recuerdo que explicaran lo de comparar String

Código: [Seleccionar]
import java.util.Scanner;

public class testMain{;
   
    public static void main (String[]args){
        String cadena = "";
        String cadenaPrincipal = "";
        System.out.println("Introdusca una Cadena");
        String entradaTeclado = "";
        Scanner entradaEscaner = new Scanner(System.in);
        entradaTeclado = entradaEscaner.nextLine();
        cadena = entradaTeclado.substring(0,1);
        if(entradaTeclado.length()<5||entradaTeclado.length()==5){
            cadenaPrincipal = "La cadena contiene 5 o menos caracteres";
        }
        if(entradaTeclado.length()>5&&entradaTeclado.length()<15){
            cadenaPrincipal = "La cadena contiene entre 5 y 15 caracteres";
        }
        if(entradaTeclado.length()>15||entradaTeclado.length()==15){
            cadenaPrincipal = "La cadena contiene 15 o mas caracteres";
        }
        if(cadena.equals("a")){
                System.out.println(cadenaPrincipal + " e inicia con a");
            }
            else{
                System.out.println(cadenaPrincipal + " y no inicia con a");
            }
       
    }
 
}
« Última modificación: 13 de Mayo 2015, 11:11 por Alex Rodríguez »

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:Escape backslash. System.out.print. Salto de línea \n (CU00657B)
« Respuesta #1 en: 13 de Mayo 2015, 02:59 »
Hola 5378453:

Revisé tu código y en mi opinión está bien realizado. Das cuenta de entender cómo pedir datos a través de la consola.

Asimismo he de hacerte algunas indicaciones para que tengas en cuenta tendientes a mejorar el código.

Por ejemplo, en líneas como:

Código: [Seleccionar]
if(entradaTeclado.length()<5||entradaTeclado.length()==5){
bien podrías simplemente escribirlas como:

Código: [Seleccionar]
if(entradaTeclado.length()<=5){
que son más legibles a la hora de revisarlas.

Luego:

Lo que no se puede hacer es comprar Strings usando "==", por lo tanto no es correcto hacer:
if(cadena == "a")

En en tu código declaras un atributo String cadena. Lo inicializas, y luego valiéndote del método  de la clase String substring(int beginIndex, int endIndex) le asignas la primera letra de la palabra ingresada por consola.
Para la comparación del atributo cadena (que solo contiene la letra inicial del atributo entradaTeclado), utilizaste el método equals(Object anObject) perteneciente a la clase String, eso está muy bien! es una de las formas.

También (ya que lo preguntabas) podrías utilizar otro de los métodos de la clase String que es: compareTo(String anotherString)
Este método devuelve un tipo int que se interpretará de la siguiente manera:
0: si el valor comparado es igual al valor que le pasamos como parámetro.
distinto de 0: si no son iguales.

De esta manera, reemplazaríamos:
Código: [Seleccionar]
if(cadena.equals("a")){
                System.out.println(cadenaPrincipal + " e inicia con a");
            }
            else{
                System.out.println(cadenaPrincipal + " y no inicia con a");
            }

por:

Código: [Seleccionar]
if(cadena.compareTo("a")==0){
                System.out.println(cadenaPrincipal + " e inicia con a");
            }
            else{
                System.out.println(cadenaPrincipal + " y no inicia con a");
            }

 

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".