Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Lorenzo31 en 23 de Marzo 2015, 18:50

Título: CU00657B Pedir datos en Java por consola (teclado). Escape backslash. System.out
Publicado por: Lorenzo31 en 23 de Marzo 2015, 18:50
Solución del ejercicio.

 Crea una clase con un método main que pida una entrada de teclado y usando condicionales, el método length de la clase String y el método substring de la clase String, muestre un mensaje indicando:

a) Si la cadena introducida tiene menos de 5 caracteres, entre 5 y 15 caracteres o más de 15 caracteres.

b) Si la cadena introducida comienza por la letra a.

Primero, he tenido que utilizar el metodo texto.equals("a") para poder comparar textos porque con == no me lo detectaba.
He intentado controlar la no introduccion de cadena de texto alguna con un do while

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

public class VerificadorCadena{
   
    public static void main (String[] args){
        String texto = "";
        int largoCadena = 0;
        String primeraA = "";
       
        do{
        System.out.println("Introduce una cadena de texto ");
        Scanner sc = new Scanner(System.in);
        texto = sc.nextLine(); }
        while (texto.equals(""));
       
        largoCadena = texto.length();
       
        //Comprobar si la primera letra es la letra A
        if(texto.substring(0,1).equals("a") || texto.substring(0,1).equals("A")){
            primeraA = "SI";
        }else{ primeraA = "NO";}
       
        if ( largoCadena < 5 ){
           System.out.println("La cadena introducida tiene menos de 5 carácteres y la primera letra " + primeraA + " es la a");
        } 
        else if ( largoCadena >= 5 && largoCadena <= 15 ){
          System.out.println("La cadena introducida tiene entre 5 y 15 carácteres y la primera letra " + primeraA + " es la a");
        }
        else { System.out.println("La cadena introducida tiene más de 15 carácteres y la primera letra " + primeraA + " es la a");
        }
       
    }  //Cierre del Main
} //Cierre de clase
       
       



Título: Re:CU00657B Pedir datos en Java por consola (teclado). Escape backslash. System.out
Publicado por: toni_apr en 23 de Marzo 2015, 21:09
Hola Lorenzo

Ejercicio correcto.

Está bien que tus programas controlen lo que introduce el usuario.
Aunque parezca mentira, los programas bien hechos incorporan mucho código para chequear las acciones de quien utiliza el programa.

Apunte para mejorar el código:
La línea:
   if(texto.substring(0,1).equals("a") || texto.substring(0,1).equals("A"))
se puede simplificar utilizando el método equalsIgnoreCase(String) que da la misma respuesta para mayúsculas que para minúsculas. Ejem.
    if(texto.substring(0,1).equalsIgnoreCase("a"))

Saludos
Título: Re:CU00657B Pedir datos en Java por consola (teclado). Escape backslash. System.out
Publicado por: Lorenzo31 en 23 de Marzo 2015, 21:19
Apuntado en mi libreta ;) gracias toni como siempre por el tiempo dedicado y los consejos.