Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: LPM en 24 de Noviembre 2014, 23:58
-
Hola.
Las variables globales las declaré tipo String porque la finalidad del programa es mostrar el resultado en forma de texto
y porque el programa se basa en imprimir todos los resultados en un texto, también declaré los métodos como private y void.
import java.util.Scanner;
public class EntradaString
{
private String texto;
private String textoLongitud;
private String esA;
public EntradaString(){
texto="";
textoLongitud="";
esA="";
}
private void escribaCadena(){
Scanner teclado=new Scanner (System.in);
System.out.println("Escriba algo.");
texto=teclado.nextLine();
}
private void contarCaracteres(){
if (texto.length()<5){textoLongitud="menos de 5";}
else if (texto.length()>=5&&texto.length()<=15) {textoLongitud="entre 5 y 15";}
else {textoLongitud="mas de 15";}
}
private void comienzoA(){
String comprueba=texto.substring(0,1);
if (comprueba.equalsIgnoreCase("a")){esA="comienza con a.";}
else {esA="no comienza con a.";}
}
public static void main (String[]args){
EntradaString textoEntrada=new EntradaString();
textoEntrada.escribaCadena();
textoEntrada.contarCaracteres();
textoEntrada.comienzoA();
System.out.println("La cadena introducida tiene "+textoEntrada.textoLongitud+" y "+textoEntrada.esA);
}
}
Luego quise usar el charAt para ver si comienza con "a" y que el programa preguntara si queria contar todos los caracteres o solo las letras.
import java.util.Scanner;
public class ProbarEntradaString
{
private String texto;
private String cadenaLongitud;
private String esA;
public ProbarEntradaString(){
texto="";
cadenaLongitud="";
esA="";
}
private void ingresarTexto(){
Scanner teclado=new Scanner(System.in);
System.out.println("Escriba algo.");
texto=teclado.nextLine();
}
private void contadorCaracteres(){
if (texto.length()<5){cadenaLongitud="menos de 5 caracteres";}
else if(texto.length()>=5&&texto.length()<=15){cadenaLongitud="entre 5 y 15 caracteres";}
else {cadenaLongitud="mas de 15 caracteres";}
}
private void contadorLetras(){
int letras=0;
for (int x=0;x<texto.length();x++) {
if(Character.isLetter(texto.charAt(x))) {letras++;}
}
if (letras<5){cadenaLongitud="menos de 5 letras.";}
else if (letras>=5&&letras<=15){cadenaLongitud="entre 5 y 15 letras.";}
else {cadenaLongitud="mas de 15 letras.";}
}
private void comienzoA(){
if(Character.toLowerCase(texto.charAt(0))=='a' ) {esA="comienza con a.";}
else {esA="no comienza con a.";}
}
public void elegirContador(){
Scanner teclado=new Scanner(System.in);
System.out.println("Contar todos los caracteres(escriba car) o solo letras(escriba let)?");
String opcion=teclado.nextLine();
if (opcion.equalsIgnoreCase("car")){contadorCaracteres();}
else if (opcion.equalsIgnoreCase("let")){contadorLetras();}
else {System.out.println("No eligió una opción correcta.");elegirContador();}
}
public static void main (String[]args){
ProbarEntradaString probar=new ProbarEntradaString();
probar.ingresarTexto();
probar.elegirContador();
probar.comienzoA();
System.out.println("El texto introducido tiene "+probar.cadenaLongitud+" y "+probar.esA);
}
}
-
Hola LPM
Tu ejercicio (clase EntradaString) me ha sorprendido. No he visto otro como este.
Un método main que no toma decisiones. Las traspasa a los otros métodos de la clase. Bien.
Bien, crear un objeto de la propia clase para poder llamar a los métodos que no son estáticos.
Ejecución del ejercicio perfecta.
----------
Tu clase ProbarEntradaString.
Variación de la clase EntradaString que permite escoger entre contar longitud de la cadena o solo caracteres alfabéticos.
También la encuentro muy bien, donde has cambiado el uso se substring por el método charAt para recuperar la primera letra de la cadena.
Salud y adelante.
-
Hola toni
gracias por responder.
y qué bueno que esté bien el ejercicio =)