Ing. MSc John Bonilla B
  manejo de cadenas en Java
 
EJERCICIOS RESUELTOS



1.  Leer una frase y encontrar la palabra de mayor longitud. El programa debe imprimir la palabra como el número de caracteres de la misma
 
SOLUCIÓN:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Ejerc12 {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 
        int i, c=0;
        String cadena, palabra="", mostrar = null;
 
        System.out.println("Ingrese la cadena: ");
        cadena=br.readLine();
        cadena+=" ";
 
        for(i=0;i<cadena.length();i++){
            palabra=palabra+cadena.charAt(i);
            if(cadena.charAt(i)==' '){
                if(palabra.length()-1>c){
                    c=palabra.length()-1;
                    mostrar=palabra.trim();
                }
                palabra="";
            } 
        }
        System.out.println("La palabra de mayor longitud es: "+mostrar);
        System.out.println("Su longitud es: "+c);
    }
}
 
 
2.  Ingresar una cadena y determinar cuantas palabras se encuentran en la cadena.  Cada palabra se separa por medio de un espacio en blanco.
 
SOLUCIÓN:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Ejerc11 {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 
        int i, con=1;
        String cadena, palabra="";
 
        System.out.println("Ingrese la cadena a evaluar: ");
        cadena=br.readLine();
        for(i=0;i<cadena.length();i++){
            if(cadena.charAt(i)==' '){
                con++;
            }
        }
        System.out.println("La cadena contiene "+con+" palabras");       
    }
 
}
 
 
3.   Ingresar un número telefónico en formato de cadena y luego lo convierta de la siguiente manera:
            Número Telefónico: 5256284000
            Nueva Cadena: (52)-5-6284000
 
SOLUCIÓN:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Ejerc15 {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 
        int i;
        String cadena,c1="", c2="", c3="";
        System.out.println("Ingrese la cadena a evaluar: ");
        cadena=br.readLine();
 
        for(i=0;i<cadena.length();i++){
            if(i<2){
                c1=c1+cadena.charAt(i);
            }
            else{
                if(i==2){
                    c2+=cadena.charAt(i);
                }
                else{
                    c3+=cadena.charAt(i);
                }
            }
        }
        System.out.println("la nueva cadena es: \n"+"("+c1+")"+"-"+c2+"-"+c3);
    }
}
 
 
4.   Hacer un programa que al recibir como datos dos cadenas de caracteres forme una tercera cadena intercalando los caracteres de las palabras de las cadenas recibidas.
 
SOLUCIÓN:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Ejerc16 {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 
        int i, j, k=0;
        String cadena1, cadena2, cadena3="";
 
        System.out.println("Ingrese la primera cadena: ");
        cadena1=br.readLine();
        System.out.println("Ingrese la segudna cadena: ");
        cadena2=br.readLine();
       
        for(i=0;i<cadena1.length();i++){
            cadena3+=cadena1.charAt(i);
            for(j=k;j<cadena2.length();j++){
               cadena3+=cadena2.charAt(j);
               j=cadena2.length();
               k++;
            }
        }
        System.out.println("La cadena intercalada es: "+cadena3);
    }
}
 
 
5.       Ingrese un texto e indique que letras no han aparecido en el texto.
 
SOLUCIÓN:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Ejerc20 {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 
        int ini, con=0;               
        String texto, nueva="", mensaje="";
 
        System.out.println("Ingrese el texto a evaluar: ");
        texto=br.readLine();
 
        for(ini=0;ini<texto.length();ini++){
            if(texto.charAt(ini)!=' '){
                nueva=nueva+texto.charAt(ini);
            }
        }
        nueva=nueva.toLowerCase();
        for(char caracter='a';caracter<='z';caracter++){
            for(ini=0;ini<nueva.length();ini++){           
            if(caracter==nueva.charAt(ini)){
                 con++;
               }
            }
            if(con==0){
                mensaje+=caracter+" ";
            }
            con=0;
        }
        System.out.println("\nLos caracteres que faltan son: \n"+mensaje);
    }
}
 
  
6.  Ingrese un texto e indique el porcentaje de palabras que tiene menos de 5 caracteres  y el porcentaje de palabras con 5 o más caracteres.
 
SOLUCIÓN:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Ejerc21 {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 
        int i;
        double porcentaje1, porcentaje2, con=0, p5=0, p6=0;
        String texto, palabra="";
 
        System.out.println("Ingrese el texto a evaluar: ");
        texto=br.readLine();
        texto=texto+" ";
        for(i=0;i<texto.length();i++){
            palabra+=texto.charAt(i);
            if(texto.charAt(i)==' '){
                palabra=palabra.trim();
                if(palabra.length()<5){
                    p5++;
                }
                else{
                    p6++;
                }
                palabra="";
                con++;
            }
        }
       
        porcentaje1=(double)((p5/con)*100);
        porcentaje2=(double)((p6/con)*100);
        System.out.println("El porcentaje de palabras con menos de 5 caracteres es: "+porcentaje1+" %");
        System.out.println("El porcentaje de palabras con 5 o mas caracteres es: "+porcentaje2+" %");
    }
}
 
 
7.   Escriba un programa que lea una frase y a continuación visualice cada palabra de la frase en columnas,  seguida del número de letras que tiene cada palabra.
 
SOLUCIÓN:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Ejerc23 {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 
        int i, j;
        String frase, palabra="", nueva="";
        System.out.println("Ingrese la frase a evaluar: ");
        frase=br.readLine();
        frase+=" ";
 
        for(i=0;i<frase.length();i++){
            palabra+=frase.charAt(i);
            if(frase.charAt(i)==' '){
                palabra=palabra.trim();
                nueva=palabra;
                for(j=0;j<nueva.length();j++){
                    System.out.println("\t"+nueva.charAt(j));
                }
                System.out.println("\t"+nueva.length()+"\n\n");
                palabra="";
            }
        }
    }
}
 
 
8.  Escriba un programa que calcule la frecuencia de aparición de las vocales de un texto porcionado por el usuario. Esta solución se debe presentar en forma de histograma, por ejmplo:
             a   15     ***************
             e    8     ********
 
SOLUCIÓN:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Ejerc24 {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 
        int i, c1=0, c2=0,c3=0, c4=0, c5=0;
        String texto, m1="", m2="", m3="", m4="", m5="";
 
        System.out.println("Ingrese el texto a evaluar: ");
        texto=br.readLine();
        texto=texto.toLowerCase();
        for(i=0;i<texto.length();i++){
              if(texto.charAt(i)=='a'){
                  c1++;
                  m1+="*";
              }
              if(texto.charAt(i)=='e'){
                  c2++;
                  m2+="*";
              }
              if(texto.charAt(i)=='i'){
                  c3++;
                  m3+="*";
              }
              if(texto.charAt(i)=='o'){
                  c4++;
                  m4+="*";
              }
              if(texto.charAt(i)=='u'){
                  c5++;
                  m5+="*";
              }
        }
        System.out.println("");
        System.out.println("a"+"    "+c1+"    "+m1);
        System.out.println("e"+"    "+c2+"    "+m2);
        System.out.println("i"+"    "+c3+"    "+m3);
        System.out.println("o"+"    "+c4+"    "+m4);
        System.out.println("u"+"    "+c5+"    "+m5);
    }
}
 
 
9.  Escribir un programa que cuente el número de palabras en un texto, que tengan al menos cuatro vocales diferentes. 


SOLUCIÓN:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Ejerc25 {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 
        int i, con=0, c1=0, c2=0, c3=0, c4=0, c5=0, vocales;
        String texto, palabra="";
 
        System.out.println("Ingrese la palabra a evaluar: ");
        texto=br.readLine();
        texto=texto.toLowerCase();
        texto+=" ";
        for(i=0;i<texto.length();i++){
            palabra+=texto.charAt(i);
            if(texto.charAt(i)==' '){
                palabra=palabra.trim();
                for(int j=0;j<palabra.length();j++){
                    if(palabra.charAt(j)=='a'){
                    c1++;
                    if(c1>1){
                        c1=1;
                    }
              }
              if(palabra.charAt(j)=='e'){
                  c2++;
                  if(c2>1){
                        c2=1;
                    }
              }
              if(palabra.charAt(j)=='i'){
                  c3++;
                  if(c3>1){
                        c3=1;
                    }
              }
              if(palabra.charAt(j)=='o'){
                  c4++;
                  if(c4>1){
                        c4=1;
                    }
              }
              if(palabra.charAt(j)=='u'){
                  c5++;
                  if(c5>1){
                        c5=1;
                    }
              }
                }
                palabra="";
                vocales=c1+c2+c3+c4+c5;
                c1=0; c2=0; c3=0; c4=0; c5=0;
                if(vocales>=4){
                    con++;               
                }
            }
        }       
        System.out.println("Las palabras son: "+con);
    }
}


10. Un grupo de inteligencia militar desea codificar los mensajes secretos de tal forma que no puedan ser interpretados con una lectura directa, para lo cual han establecido las siguientes reglas:
       a) Todo mensaje debe estar sus letras en mayúsculas.
   b) Reemplazar cada letra por la que sigue según abecedario, excepto Z que  se deberá reemplazar con la letra A.
    c) reemplazar cada dígito encontrado por el siguiente numero excepto el 9 que  deberá ser reemplazado por el 0.


SOLUCIÓN:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class mensajemilitar {
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 
        String mensaje, cod1="",cod2="", caracter;
        String ABC="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String numeros="0123456789";
 
        System.out.println("Ingrese el mensaje: ");
        mensaje=br.readLine();
        System.out.println(""+mensaje);
        mensaje=mensaje.toUpperCase();
        for (int i = 0; i < mensaje.length(); i++) {
            caracter=mensaje.substring(i, i+1);
            if(caracter.equals(" ")){
                cod1=cod1+caracter;
            }
            else{
                for (int j = 0; j < ABC.length(); j++) {
                if(caracter.equals(ABC.substring(j,j+1))){
                    if(caracter.equals("Z")){
                        cod1=cod1+"A";
                        break;
                    }
                    else{
                        cod1=cod1+ABC.substring(j+1,j+2);
                        break;
                    }
                }
            }
            for (int k = 0; k <numeros.length(); k++) {
                if(caracter.equals(numeros.substring(k,k+1))){
                    if(caracter.equals("9")){
                        cod1=cod1+"0";
                        break;
                    }
                    else{
                        cod1=cod1+numeros.substring(k+1,k+2);
                        break;
                    }
                }
            }
            }
           
        }
        System.out.println("\nMENSAJE INGRESADO: "+mensaje);
        System.out.println("CODIGO RESULTANTE "+cod1);
    }

}

 


 
 
  Hoy habia 9 visitantes (24 clics a subpáginas) ¡Aqui en esta página!  
 
espero tengan un uso adecuado de las tecnologias...
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis