Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: javalopez en 06 de Junio 2015, 02:00
-
Buenas noches, aquí les dejo el código que realicé para el ejercicio pedido. Para comparar el primer carácter utilicé el método compareTo igualado a cero por no poder comparar un String mediante =="a", (espero esta solución sea correcta).
import java.util.Scanner;
public class TestAnalizaCadenas{
public static void main (String [ ] args) {
System.out.println ("Por favor introduzca una cadena por teclado:");
Scanner entradaEscaner = new Scanner (System.in);
String entradaTeclado = entradaEscaner.nextLine ();
String primeraLetra=entradaTeclado.substring(0,1);
System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado +"\"");
if(primeraLetra.compareTo("a")==0){
System.out.println("La primera letra del texto ingresado es una \"a\"");
}
else{
System.out.println("La primera letra del texto ingresado NO es una \"a\"");
}
int cantidadCaracteres=entradaTeclado.length();
if(cantidadCaracteres>=5&&cantidadCaracteres<=15){
System.out.println("La cadena ingresada contiene entre 5 y 15 caracteres");
}
else if(cantidadCaracteres<5){
System.out.println("La cadena ingresada contiene menos de 5 caracteres");
}
else{
System.out.println("La cadena ingresada contiene mas de 15 caracteres");
}
} //Cierre del main
}
Saludos, Ariel.
-
El mensaje que debe mostrar por pantalla tiene que se así según el ejercicio
Por pantalla se debe mostrar: “La cadena introducida tiene entre 5 y 15 caracteres y no comienza por a”.
Y usando compareTo("a") funciona si es minúscula pero si el usuario ingresa una mayúscula ya dice que no es una a.
Hice alguna modificación a tu ejercicios espero que te sirva
import java.util.Scanner;
public class TestAnalizaCadenas {
public static void main(String[] args) {
System.out.println("Por favor introduzca una cadena por teclado:");
Scanner entradaEscaner = new Scanner(System.in);
String entradaTeclado = entradaEscaner.nextLine();
String primeraLetra = entradaTeclado.substring(0, 1);
String letra;
String palabra;
if (entradaTeclado.substring(0, 1).equalsIgnoreCase("a")) {
letra = "comienza por a";
} else {
letra = " no comienza por a";
}
int cantidadCaracteres = entradaTeclado.length();
if (cantidadCaracteres >= 5 && cantidadCaracteres <= 15) {
palabra = "entre 5 y 15";
} else if (cantidadCaracteres < 5) {
palabra = "menos de 5 ";
} else {
palabra = "mas de 15";
}
System.out.println("La cadena introducida tiene " + palabra + " caracteres y " + letra + ".");
} //Cierre del main
}
-
Hola ariel
El código es correcto!, aunque podríamos decir un "casi"... por un simple detallito:
(http://i.imgur.com/SvqUEWs.png)
Como se puede ver (y como te menciono DRANX mas arriba), no reconoce una A mayúscula. Hay varias formas para resolver esto, usare la solución que diste, el uso del "compareTo"... con esto bastaria:
if(primeraLetra.compareTo("a")== 0 || primeraLetra.compareTo("A")== 0){
System.out.println("La primera letra del texto ingresado es una \"a\"");
}
Y ahora si reconoce!
(http://i.imgur.com/i9cee0U.png)
Tu respuesta no es que este incorrecta, esta bien, solo fue ese pequeño detalle que acabe de agregar :)
DRANX utilizo un equalsIgnoreCase, esto compara la cadena string con lo que se desea comprobar y devuelve true si el carácter o cadena concuerda con la condición, sea mayúscula o no.
Hay mas soluciones para comprobar... como el metodo matches, equals... y si quieres complicarte mas, hasta convertir una cadena string a char para poder utilizar el operador "==" (solo digo, no te compliques... ::) )
Saludos!