Autor Tema: Ejercicio entrega CU00657B Métodos length y substring de la clase String. Java  (Leído 5668 veces)

resakoso

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
He estado intentando comparar los String con los operadores de comparación, y no ha habido forma. Al final buscando descubrí que esto se hace con equals...
Si hay algo que sería mejor hacerlo de otra forma, agradezco los comentarios  :D.

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.

Ejemplo: se pide la entrada y el usuario introduce “vereda”. Por pantalla se debe mostrar: “La cadena introducida tiene entre 5 y 15 caracteres y no comienza por a”.

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

public class Entradateclado {
   
    public Entradateclado(){
        //nada
    }   
   
   
    public static void main(String[] args) {
        String texto;
        String res;
        Scanner entrada=new Scanner(System.in);
        System.out.print("Introduce texto: ");
        texto=entrada.nextLine();
        if(texto.length()<5){
            res="La cadena introducida tiene menos de 5 caracteres";
           
        }else
            if((texto.length()>=5)&&(texto.length()<=15))
                res="La cadena introducida tiene entre 5 y 15 caracteres";
            else
                res="La cadena tiene mas de 15 caracteres";     
        if(texto.substring(0,1).equals("a"))
            res=res+" y comienza por a";
        else
            res=res+" y no comienza por a";
        System.out.println(res);
    }
   
}
« Última modificación: 18 de Noviembre 2014, 17:49 por Jorge lopez »

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
 Hola resakoso!

Tu ejercicio cumple perfectamente con lo requerido, no obstante te invito a que analices el siguiente código que he editado a partir de el código de tu clase Entradateclado que por cierto tiene un nombre que no cumple con una regla muy importante a la hora de programar.

Esta es la regla o estilo camelCase, exactamente su variación UpperCamelCase
http://es.wikipedia.org/wiki/CamelCase donde se usan palabras o frases compuestas, y donde la primera letra de cada palabra se escribe en mayúscula. La variación UpperCamelCase de la regla o etilo CamelCase en java se aplica a nombres de clases, para nombres de variables y métodos que usan palabras o frases compuestas por mas de una palabra, se usa la variación lowerCamelCase. Teniendo esto en cuenta, un nombre correcto para tu clase podría ser EntradaTeclado

A continuación dejo el nuevo código comentado en cada linea donde realice algunos cambios oportunos, a fin de que los analices y conserves lo que creas util:
Código: [Seleccionar]

import java.util.Scanner;

public class EntradaTeclado
{
   
    public EntradaTeclado()
    {
        //nada
    }   
   
   
    public static void main(String[] args)
    {
        String texto;
        String res = "";//inicializamos la variable res, con valor cadena de texto vacia
        Scanner entrada = new Scanner(System.in);
        System.out.print("Introduce texto: ");
        texto = entrada.nextLine();
        int sizeTexto = texto.length();//Capturamos el largo del texto escrito en una variable tipo int
        //En lugar de usar if con else anidando mas if con else, pues usamos if con tantos else if como nos sea necesario.
        if(sizeTexto < 5)
        {
            res = "La cadena introducida tiene menos de 5 caracteres";       
        }
        else if((sizeTexto >= 5)&&(sizeTexto <= 15))
        {
            res = "La cadena introducida tiene entre 5 y 15 caracteres";
        }
        else if(sizeTexto > 15)
        {
            res = "La cadena tiene mas de 15 caracteres";
        }
       
        if(texto.substring(0,1).equalsIgnoreCase("a"))/*Usamos el método equalsIgnoreCase(String anotherString); de la clase String para que el programa sepa
        como comportarse ante una "a" o una "A", Mayúscula/minúscula*/
        {
            res += " y comienza por la letra " + texto.substring(0,1);/*Con este substring extraemos la primera letra del texto para mostrarla por pantalla
            si es una "a" o una "A"*/
        }
        else
        {
            res += " y no comienza por la letra a/A";/*La funcion del operador += es igualar el valor de la variable que lo antecede, a la suma de un nuevo valor
            sobre esta misma variable, es lo mismo que decir: res = res + "nuevo String a sumar"*/
        }
        /*Nota: en tu código descuidas el uso de las llaves {} en los condicionales if, (en ocasiones faltan llaves) aunque el programa de momento se comporte bien
           esto podría ser perjudicial a lo largo, fíjate que yo coloco las {} siempre en su lugar correspondiente.*/
        System.out.println(res);
    }
   
}

Como siempre, cualquier duda no dudes en preguntar.

Saludos!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

 

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