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);
}
}