PROGRAMACION Ejercicios 14 Ejemplos de funciones String. SHEILA NIETO UREÑA CLASE STRING Funciones equals y compareTo. Escribir un programa que compruebe su una palabra es palíndromo o no (ejem. RADAR). 1. Contar el número de vocales (sin tilde) que se encuentran en una cadena. 2. Contar el número de consonantes que se encuentran en una cadena. 3. Dada una cadena de caracteres, invertirla. 4. Contar cuantas veces se encuentra una subcadena dentro de una cadena. 5. Ingresar una cadena de caracteres formadas por números y letras, en ese orden y obtenga otra cadena donde aparezca cada letra tantas veces como lo indique el número que lo precede. Ejemplo: Si la cadena es 2w4r5f debemos obtener la siguiente cadena: wwrrrrffffff. 6. Ingresar una cadena y determinar cuantas palabras se encuentran en la cadena. Cada palabra se separa por medio de un espacio en blanco. 7. Leer una frase y encontrar la palabra de mayor longitud. El programa debe imprimir la palabra así como el número de caracteres de la misma. 8. 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. 9. Ingrese un texto e indique qué letras no han aparecido en el texto. 10. 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. 11. Escriba un programa que calcule la frecuencia de aparición de las vocales de un texto introducido por el usuario. Esta solución se debe presentar en forma de histograma, por ejemplo: a e 15 8 *************** ******** 12. Dada una cadena, verificar si coincide con una matrícula portuguesa o no (NN-LL-NN). 13. Dado un array de nombres, ordenarlos alfabéticamente (Juan, Eva, Ana, Andres, Jorge). 14. Una palabra se dice abecedaria si las letras que la forman se encuentran en orden alfabético si son leídas de izquierda a derecha. Por ejemplo, las siguientes palabras cumplen con ser abecedarias: Amor, filo, chintz, luz, dinos... Escriba un método que permita determinar si una palabra es abecedaria. El método debe recibir un string como parámetro y retornar verdadero en caso que la palabra sea abecedaria, y falso en caso contrario. Para esto puede ocupar solo los siguientes métodos de la clase String: charAt, length, equals, compareTo. 15. Realice un método que reciba un String con una operación básica (+, -, *,/) y devuelve el resultado de esa operación. Por ejemplo si recibe 4,5 + 35 debe devolver 39,5. Para esto puede ocupar solo los siguientes métodos de la clase String: charAt, length. 1 PROGRAMACION Ejercicios 14 SHEILA NIETO UREÑA ejercicios14 cadenas ......................................................................................................................................................................... 3 Cadenas I .................................................................................................................................................................. 3 Cadenas II ................................................................................................................................................................. 4 CompararCadenas .................................................................................................................................................... 5 Palíndromo ............................................................................................................................................................... 6 Ejer1 .......................................................................................................................................................................... 7 Ejer1Socorro ............................................................................................................................................................. 7 Ejer2 .......................................................................................................................................................................... 8 Ejer2Socorro ............................................................................................................................................................. 9 Ejer3 .......................................................................................................................................................................... 9 Ejer4 ........................................................................................................................................................................ 10 Ejer5 ........................................................................................................................................................................ 11 Ejer6 ........................................................................................................................................................................ 12 Ejer7 ........................................................................................................................................................................ 12 Ejer7Socorro ........................................................................................................................................................... 13 Ejer8 ........................................................................................................................................................................ 14 Ejer9 ........................................................................................................................................................................ 15 Ejer10 ...................................................................................................................................................................... 16 Ejer11 ...................................................................................................................................................................... 17 Ejer12 ...................................................................................................................................................................... 18 Ejer13 ...................................................................................................................................................................... 19 Ejer14 ...................................................................................................................................................................... 20 Ejer15 ...................................................................................................................................................................... 21 2 PROGRAMACION Ejercicios 14 SHEILA NIETO UREÑA cadenas Cadenas I package cadena1; public class Cadenas1 { public static void main(String[] args) { String cad1="buenos dias"; String cad2="Nos quedan dos dias para las vacaciones"; String cad3; cad3=new String ("horror"); String cad4=new String("BUENOS DIAS"); int n1,n2,n3; //calcula la longitud de la cadena n1=cad1.length(); n2=cad2.length(); n3=cad3.length(); System.out.println("Longitud de las cadenas\nCadena 1: "+n1+ "\nCadena 2: "+n2+"\nCadena 3: "+n3+"\n"); //obtencion del primer caracter de las cadenas System.out.println("Cadena 1: "+cad1.charAt(0)); System.out.println("Cadena 2: "+cad2.charAt(0)); System.out.println("Cadena 3: "+cad3.charAt(0)+"\n"); //comparacion de cadenas if(cad1.equals(cad3)) System.out.println("IGUALES"); else System.out.println("DISTINTAS"); System.out.println(); } if(cad1.equals(cad4)) System.out.println(cad1+" - "+cad4+" --> CADENAS IGUALES"); else System.out.println(cad1+" - "+cad4+" --> CADENAS DISTINTAS"); //comparacion de cadenas ignorando mayusculas y minusculas if(cad1.equalsIgnoreCase(cad4)) System.out.println(cad1+" - "+cad4+" --> CADENAS IGUALES"); else System.out.println(cad1+" - "+cad4+" --> CADENAS DISTINTAS"); System.out.println(); //busqueda de un caracter en una cadena n1=cad1.indexOf('o'); System.out.println("En la cadena "+cad1+ " la primera aparicion del caracter buscado es la posicion "+n1+"\n"); //extraccion de una subcadena String cad5=cad1.substring(3,9); //coge la primera posicion, la segunda no System.out.println("Extraccion de una subcadena de la cadena 1 " + "comprendida entre las posiciones 3 y 9:"+cad5); } 3 PROGRAMACION Ejercicios 14 SHEILA NIETO UREÑA Cadenas II package cadenas; import java.util.Scanner; public class Cadenas_II { static Scanner sc=new Scanner(System.in); static String cad,cad1,cad2,cad3,tex1,tex2; static char car,car1,car2; } public static void main(String[] args){ cad1="buenos dias"; cad2="buenos dias señor"; cad3="BUENOS DIAS"; //FUNCION EQUALS System.out.println("FUNCION EQUALS\n Ejemplo 1"); //compara 2 cadenas caracter por caracter segun cod. ASCII if(cad1.equals(cad2)) System.out.println(" Cadenas IGUALES"); else System.out.println(" Cadenas DISTINTAS"); System.out.println(); //distingue entre mayusculas y minusculas System.out.println(" Ejemplo 2"); if(cad1.equals(cad3)) System.out.println(" "+cad1+" - "+cad3+" --> CADENAS IGUALES"); else System.out.println(" "+cad1+" - "+cad3+" --> CADENAS DISTINTAS"); //FUNCION COMPARETO System.out.println("\nFUNCION compareTo"); if(cad1.compareTo(cad3)==0) System.out.println(" Las dos cadenas son iguales"); else if(cad1.compareTo(cad3)<0) System.out.println(" La cadena '"+cad1+"' va antes que la cadena '"+cad3+"'"); else if(cad1.compareTo(cad3)>0) System.out.println(" La cadena '"+cad1+"' va despues de la cadena '"+cad3+"'"); //FUNCION REPLACE --> cambia un caracter por otro dentro de una cadena System.out.print("\nIntroduce una cadena: "); tex1=cargarCad(); System.out.print("Introduce caracter a reemplazar: "); car1=cargarCar(); System.out.print("Introduce caracter de reemplazo: "); car2=cargarCar(); System.out.println(tex1.replace(car1, car2)); //FUNCION REPLACEFIRST --> cambia una palabra por otra dentro de una cadena System.out.print("\nIntroduce una cadena: "); cad=cargarCad(); System.out.print("Introduce palabra a reemplazar: "); tex1=cargarCad(); System.out.print("Introduce palabra de reemplazo: "); tex2=cargarCad(); System.out.println(cad.replaceAll(tex1, tex2)); } public static String cargarCad(){ String cad=sc.nextLine(); return cad; } public static char cargarCar(){ char car=sc.next().charAt(0); return car; } 4 PROGRAMACION Ejercicios 14 SHEILA NIETO UREÑA CompararCadenas package cadenas; import java.util.Scanner; public class CompararCadenas{ static Scanner sc=new Scanner(System.in); static String cad1,cad2,cad3; public static void main(String[] args){ cad1="buenos dias"; cad2="buenos dias señor"; cad3="BUENOS DIAS"; //FUNCION EQUALS System.out.println("FUNCION EQUALS\n Ejemplo 1"); //compara 2 cadenas caracter por caracter segun cod. ASCII if(cad1.equals(cad2)) System.out.println(" Cadenas IGUALES"); else System.out.println(" Cadenas DISTINTAS"); System.out.println(); //distingue entre mayusculas y minusculas System.out.println(" Ejemplo 2"); if(cad1.equals(cad3)) System.out.println(" "+cad1+" - "+cad3+" --> CADENAS IGUALES"); else System.out.println(" "+cad1+" - "+cad3+" --> CADENAS DISTINTAS"); //FUNCION COMPARETO System.out.println("\nFUNCION compareTo"); if(cad1.compareTo(cad3)==0) System.out.println(" Las dos cadenas son iguales"); else if(cad1.compareTo(cad3)<0) System.out.println(" La cadena '"+cad1+"' va antes que la cadena '"+cad3+"'"); else if(cad1.compareTo(cad3)>0) System.out.println(" La cadena '"+cad1+"' va despues de la cadena '"+cad3+"'"); } } 5 PROGRAMACION Ejercicios 14 Palíndromo package cadenas; import java.util.Scanner; public class Palindromo{ static String cad; } public static void main(String[] args){ cargarString(); palindromo(); } public static void cargarString(){ Scanner sc=new Scanner(System.in); System.out.print("Introduce una palabra: "); cad=sc.nextLine(); sc.close(); } public static void palindromo(){ int m=cad.length()/2; int i=0, j=cad.length()-1, c=m-i, d=m+c, c1=0, c2=0; if(cad.length()%2==0){ for(i=0; i<m; i++) if(cad.charAt(i)==cad.charAt(j)){ c1++; j--; }else c2++; if(c1==m) System.out.println("Es palindromo"); else System.out.println("No es palindromo"); }else{ for(i=0; i<m; i++) if(cad.charAt(i)==cad.charAt(d)) c1++; else c2++; if(c1==c2) System.out.println("Es palindromo"); else System.out.println("No es palindromo"); } } 6 SHEILA NIETO UREÑA PROGRAMACION Ejercicios 14 SHEILA NIETO UREÑA Ejer1 package cadenas; /* Contar el numero de vocales (sin tilde) que se encuentran en una cadena.*/ import java.util.Scanner; public class Ejer1 { public static String cad; public static char aux[]; } public static void main(String[] args){ cargarCad(); invertirOrden(); } public static void cargarCad() { Scanner sc=new Scanner(System.in); System.out.print("Introduce una frase: "); cad=sc.nextLine(); aux=new char[cad.length()]; for(int i=0; i<aux.length; i++) aux[i]=cad.charAt(i); cad=cad.toUpperCase(); sc.close(); } public static void invertirOrden() { int v=0; for(int j=0; j<aux.length; j++) if(aux[j]=='a'||aux[j]=='e'||aux[j]=='i'||aux[j]=='o'||aux[j]=='u') v++; System.out.println("\n"+cad+" tiene "+v+" vocales"); } Ejer1Socorro package cadenas; /* Contar el numero de vocales (sin tilde) que se encuentran en una cadena.*/ import java.util.Scanner; public class Ejer1Socorro { static String cad; public static void main(String[] args){ cad=cargarCad(); contarVocales(cad); } public static String cargarCad() { Scanner sc=new Scanner(System.in); System.out.print("Introduce una frase: "); cad=sc.nextLine(); cad+=" "; sc.close(); return cad; } public static void contarVocales(String cad){ int numc=0,i,cont=0; char car; numc=cad.length(); for (i=0; i<numc; i++) { car=cad.charAt(i); switch(car){ //tambien toUpperCase pa pasar todo a mayusculas o case 'a': case 'A': //toLowerCase para pasar todo a minusculas 7 PROGRAMACION Ejercicios 14 case case case case } } 'e': 'i': 'o': 'u': case case case case SHEILA NIETO UREÑA 'E': 'I': 'O': 'U': cont++; } } System.out.println("Numero de vocales: "+cont); Ejer2 package cadenas; import java.util.Scanner; /* Contar el numero de consonantes que se encuentran en una cadena.*/ public class Ejer2{ public static String cad; public static char aux[]; } public static void main(String[] args){ cargarCad(); contarCons(); } public static void cargarCad() { Scanner sc=new Scanner(System.in); System.out.print("Introduce una frase: "); cad=sc.nextLine(); aux=new char[cad.length()]; for(int i=0; i<aux.length; i++) aux[i]=cad.charAt(i); cad=cad.toUpperCase(); sc.close(); } public static void contarCons() { int c,v=0; for(int j=0; j<aux.length; j++) if(aux[j]=='a'||aux[j]=='e'||aux[j]=='i'||aux[j]=='o'||aux[j]=='u') v++; c=aux.length-v; System.out.println("\n"+cad+" tiene "+c+" consonantes"); } 8 PROGRAMACION Ejercicios 14 Ejer2Socorro SHEILA NIETO UREÑA package cadenas; /* Contar el numero de consonantes que se encuentran en una cadena.*/ import java.util.Scanner; public class Ejer2Socorro { public static void main(String[] args){ String cad; int numc=0,i,cont=0; char car; Scanner sc=new Scanner(System.in); System.out.print("Introduce una frase: "); cad=sc.nextLine(); numc=cad.length(); for (i=0; i<numc; i++) { car=cad.charAt(i); switch(car){ case 'a': case 'A': case 'e': case 'E': case 'i': case 'I': case 'o': case 'O': case 'u': case 'U': break; default: if(car!=' ' && car!='.') cont++; } } System.out.println("Numero de consonantes: "+cont); sc.close(); } } Ejer3 package cadenas; /* Dada una cadena de caracteres, invertirla.*/ import java.util.Scanner; public class Ejer3 { public static String cad,inv1="",inv2=""; public static void main(String[] args){ Ejer3 e=new Ejer3 (); cargarCad(); System.out.println("\n"+e.invertir(cad)); e.invertirCad(cad, inv2); } public static void cargarCad(){ Scanner sc=new Scanner(System.in); System.out.print("Introduce una frase: "); cad=sc.nextLine(); sc.close(); } //2 metodos (devuelve y no devuelve valor) public String invertir(String cad){ for(int i=cad.length()-1; i>=0; i--) inv1=inv1+cad.charAt(i); return inv1; } public void invertirCad(String cad,String inv2){ for(int i=cad.length()-1; i>=0; i--) inv2=inv2+cad.charAt(i); System.out.println("\n"+inv2); } } 9 PROGRAMACION Ejercicios 14 SHEILA NIETO UREÑA Ejer4 package cadenas; /* Contar cuantas veces se encuentra una subcadena dentro * de una cadena.*/ import java.util.Scanner; //Buscando y rebuscando se encuentra lo buscado public class Ejer4{ static Scanner sc= new Scanner(System.in); static String cad,subCad,aux; static int con; public static void main(String[] args){ System.out.print("Introducir cadena: "); cad=cargarCad(cad); aux=cad; System.out.print("Introdir subcadena a buscar: "); subCad=cargarCad(subCad); buscarSubcadena(cad,subCad); sc.close(); } } public static String cargarCad(String cad){ cad=sc.nextLine(); cad=cad.toLowerCase(); return cad; } public static void buscarSubcadena(String cad,String subCad){ con=0; while (cad.indexOf(subCad) > -1) { cad=cad.substring(cad.indexOf(subCad)+subCad.length(),cad.length()); con++; } subCad=subCad.toLowerCase(); System.out.println("En la cadena \""+aux+"\" se encuentra la subcadena \"" +subCad+"\" "+con+ " veces"); } 10 PROGRAMACION Ejercicios 14 SHEILA NIETO UREÑA Ejer5 package cadenas; import /* * * * * java.util.Scanner; Ingresar una cadena de caracteres formadas por numeros y letras, en ese orden y obtenga otra cadena donde aparezca cada letra tantas veces como lo indique el numero que lo precede. Ejemplo: Si la cadena es 2w4r5f debemos obtener la siguiente cadena: wwrrrrffffff.*/ public class Ejer5 { public static String cad1,cad2; } public static void main(String[] args) { cad1=cargarCad(); sacarSolucion(cad1); } public static String cargarCad() { Scanner sc=new Scanner(System.in); String cad; System.out.print("Introduce una cadena del tipo '2w4r5f': "); cad=sc.nextLine(); sc.close(); return cad; } public static void sacarSolucion(String cad) { cad2=""; String l; int n; for(int i=0; i<cad.length(); i++){ if(i==0||i%2==0){ l=""+cad.charAt(i); n=Integer.parseInt(l); for(int j=0; j<n; j++){ cad2+=cad.charAt(i+1); } } } System.out.println(cad2); } //String element = "el5"; //String s; //s = ""+element.charAt(2); //int x = Integer.parseInt(s); 11 PROGRAMACION Ejercicios 14 SHEILA NIETO UREÑA Ejer6 package cadenas; /* Ingresar una cadena y determinar cuantas palabras se encuentran en la cadena. Cada * palabra se separa por medio de un espacio en blanco.*/ import java.util.Scanner; public class Ejer6 { public static String cad; } public static void main(String[] args) { cargarCad(); contarPalabras(); } public static void cargarCad() { Scanner sc=new Scanner(System.in); System.out.print("Introduce una frase: "); cad=sc.nextLine(); sc.close(); } public static void contarPalabras() { int c=0; for(int i=0; i<cad.length(); i++) if(cad.charAt(i)==' ') c++; c++; System.out.println("\nLa frase tiene "+c+" palabras"); } Ejer7 package cadenas; /* Leer una frase y encontrar la palabra de mayor longitud. El programa debe imprimir la * palabra y el numero de caracteres de la misma.*/ import java.util.Scanner; public class Ejer7 { public static String cad,aux,word; public static void main(String[] args) { cad=cargarCad(); if(cad.length()==1){ System.out.println("No se ha introducido ninguna palabra"); }else{ contarPalabra(cad); } } public static String cargarCad() { Scanner sc=new Scanner(System.in); System.out.print("Introduce una frase: "); cad=sc.nextLine(); cad+=" "; sc.close(); return cad; } public static void contarPalabra(String cad){ int p=0,max=p; for(int j=0;j<cad.length();j++){ p=0; aux=""; 12 PROGRAMACION Ejercicios 14 SHEILA NIETO UREÑA while(cad.charAt(j)!=' '){ aux+=cad.charAt(j); p++; j++; } if (p>max){ max=p; word=aux; } } } } if(cad.length()!=0){word=word.toUpperCase(); System.out.println("La palabra mas larga es "+word+ " con una longitud de "+max+" caracteres");} Ejer7Socorro package cadenas; /* Leer una frase y encontrar la palabra de mayor longitud. El programa debe imprimir la * palabra y el numero de caracteres de la misma.*/ import java.util.Scanner; public class Ejer7Socorro { public static void main(String[] args) { int i, c=0; Scanner sc = new Scanner(System.in); String cadena, palabra="", mostrar = null; System.out.println("Inroduzca la cadena: "); cadena=sc.nextLine(); 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(); c=mostrar.length(); } palabra=""; } } System.out.println("La palabra de mayor longitud es: "+mostrar); System.out.println("Su longitud es: "+c); sc.close(); 13 PROGRAMACION Ejercicios 14 Ejer8 SHEILA NIETO UREÑA package cadenas; /* 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.*/ import java.util.Scanner; public class Ejer8 { public static String cad1,cad2,cad3=" "; static Scanner sc=new Scanner(System.in); } public static void main(String[] args) { cad1=cargarCad(); cad2=cargarCad(); cad3=intercalar1(cad1,cad2); System.out.println(cad3); cad3=intercalar2(cad1,cad2); System.out.println(cad3); sc.close(); } public static String cargarCad() { System.out.print("Introduce una frase: "); String cad=sc.nextLine(); return cad; } public static String intercalar1(String c1,String c2){ String c3=" "; int i,k; if(c1.length()>c2.length()){ for(i=0; i<c2.length();i++){ c3+=c1.charAt(i); c3+=c2.charAt(i); } for (k=i; k<c1.length();k++) c3+=c1.charAt(k); }else{ for(i=0; i<c1.length();i++){ c3+=c1.charAt(i); c3+=c2.charAt(i); } for (k=i; k<c2.length();k++) c3+=c2.charAt(k); } return c3; } public static String intercalar2(String c1,String c2){ String c3=" "; if(c1.length()>c2.length()){ for(int i=0; i<c2.length();i++){ c3+=c1.charAt(i); c3+=c2.charAt(i); } }else{ for(int i=0; i<c1.length();i++){ c3+=c1.charAt(i); c3+=c2.charAt(i); } } return c3; } 14 PROGRAMACION Ejercicios 14 Ejer9 SHEILA NIETO UREÑA package cadenas; /* Introducido un texto, indicar que letras no aparecen en el texto.*/ import java.util.Scanner; public class Ejer9 { public static String cad="",tex=""; static Scanner sc=new Scanner(System.in); } public static void main(String[] args){ cad=cargarCad(); tex=preparar(cad); buscarLetras(tex); sc.close(); } public static String cargarCad(){ System.out.print("Introduce una frase: "); String cad=sc.nextLine(); return cad; } public static String preparar(String cad){ for(int i=0; i<cad.length(); i++) if(cad.charAt(i)!=' ') tex=tex+cad.charAt(i); tex=tex.toLowerCase(); return tex; } public static void buscarLetras(String tex){ char l=' '; int c=0; System.out.println("\nLetras no incluidas en el texto:\t"); for(char k='a'; k<='z'; k++) { c=0; for (int i=0; i<tex.length(); i++){ l=tex.charAt(i); if(k!=l) c++; if(c==tex.length()) System.out.print(k+" "); } } } 15 PROGRAMACION Ejercicios 14 Ejer10 SHEILA NIETO UREÑA package cadenas; /* Escriba un programa que lea una frase y a continuacion visualice cada palabra de la * frase en columnas, seguida del numero de letras que tiene cada palabra.*/ import java.util.Scanner; public class Ejer10{ public static String cad; static Scanner sc=new Scanner(System.in); public static void main(String[] args) { cargarCad(); verCad(cad); System.out.println(); verCad2(cad); sc.close(); } public static void cargarCad() { System.out.print("Introduce una frase: "); cad=sc.nextLine(); cad+=" "; } } public static String cargarCad2() { //Pedido por Socorro System.out.print("Introduce una frase: "); cad=sc.nextLine(); //cad=sc.nextLine()+" "; cad+=" "; return cad; } public static void verCad(String cad) { String tex; int j=0,c; for(int i=0;i<cad.length();i++){ tex=""; c=0; while(cad.charAt(j)!=' '){ tex+=cad.charAt(j); c++; j++; } System.out.println(tex+"\t"+c+" letras"); i=j; j++; } } public static void verCad2(String cad){ //Socorro String cad2=""; int i; for (i = 0; i < cad.length(); i++) { if(cad.charAt(i)!=' '){ cad2=cad2+cad.charAt(i); }else{ System.out.println(cad2+"\t"+cad2.length()+" letras"); cad2=""; } } } 16 PROGRAMACION Ejercicios 14 Ejer11 SHEILA NIETO UREÑA package cadenas; /* Escriba un programa que calcule la frecuencia de aparicion de las vocales de * un texto introducido por el usuario. Esta solucion se debe presentar en forma * de histograma*/ import java.util.Scanner; public class Ejer11 { public static String cad,ast; public static char car; public static int ca,ce,ci,co,cu; public static void main(String[] args){ cad=cargarCad(); contarVocales(cad); verResultado(car); } public static String cargarCad() { Scanner sc=new Scanner(System.in); System.out.print("Introduce una frase: "); cad=sc.nextLine(); cad=cad.toLowerCase(); sc.close(); return cad; } public static void contarVocales(String cad){ for (int i=0; i<cad.length(); i++){ car=cad.charAt(i); switch(car){ case 'a': ca++; break; case 'e': ce++; break; case 'i': ci++; break; case 'o': co++; break; case 'u': cu++; break; } } } public static void asteriscos(char car,int c) { int i=0; ast=""; while(i<c){ ast=ast+'*'; i++; } System.out.println(car+" "+c+" "+ast); } public static void verResultado(char car){ for (car='a'; car<='u'; car++){ switch(car){ case 'a': asteriscos(car,ca); break; case 'e': asteriscos(car,ce); break; case 'i': asteriscos(car,ci); break; case 'o': asteriscos(car,co); break; case 'u': asteriscos(car,cu); break; 17 PROGRAMACION } } } Ejercicios 14 SHEILA NIETO UREÑA } Ejer12 package cadenas; /* Dada una cadena, verificar si coincide con una matricula portuguesa o no. * (NN-LL-NN)*/ import java.util.Scanner; public class Ejer12 { public static String cad=""; public static char car; public static boolean a,b,c; public static void main(String[] args){ Ejer12 e=new Ejer12(); cad=cargarCad(); if(cad.length()==8){ for (int i=0; i<cad.length();i++) { car=cad.charAt(i); switch (i){ case 0: case 1: case 6: case 7: a=e.esNumerico(car); break; case 2: case 5: b=e.esGuion(car); break; case 3: case 4: c=e.esLetra(car); break; } } if (b && c && a) System.out.println("Matricula "+cad+" es matricula portuguesa"); else System.out.println("Matricula "+cad+" NO es portuguesa"); }else System.out.println("Matricula "+cad+" NO es portuguesa"); } public static String cargarCad(){ Scanner sc=new Scanner(System.in); System.out.print("Introduce una matricula: "); String cad=sc.nextLine(); cad=cad.toUpperCase(); sc.close(); return cad; } public boolean esNumerico(char c){ boolean es=false; if(c>='0' && c<='9') es=true; return es; } 18 PROGRAMACION } Ejercicios 14 public boolean esLetra(char c){ boolean es=false; if(c>='A'&&c<='Z') es=true; return es; } public boolean esGuion(char c){ boolean es=true; if(c!='-') es=false; return es; } Ejer13 package cadenas; /* Dado un array de nombres, ordenarlos alfabeticamente */ import java.util.Scanner; public class Ejer13 { static Scanner sc= new Scanner(System.in); static final int N=4; static String nom[], aux; static int i,j; public static void main(String[] args) { nom=new String[N]; System.out.println("\nIntroducir Array\t"); cargarArray(nom); verArray(nom); nom=ordenarArray(nom); System.out.println("\nArray ordenado:\t"); verArray(nom); sc.close(); } public static void cargarArray(String tab[]){ for (i=0; i<N; i++){ j=i+1; System.out.print("Introduce nombre "+j+": "); tab[i]=sc.nextLine(); } } public static String[] ordenarArray(String tab[]) { j=0; for (i=0; i<N; i++) for (j=0; j<i; j++) if(tab[i].compareTo(tab[j])<0){ aux=tab[j]; tab[j]=tab[i]; tab[i]=aux; } return tab; } public static void verArray(String tab[]) { for (i=0; i<N; i++) { tab[i]=tab[i].toUpperCase(); System.out.println(" "+tab[i]); } } } 19 SHEILA NIETO UREÑA PROGRAMACION Ejercicios 14 Ejer14 SHEILA NIETO UREÑA package cadenas; /* Escriba un metodo que permita determinar si una palabra es abecedaria.*/ import java.util.Scanner; public class Ejer14 { public static String cad; public static char c1,c2; public static int con; public static boolean abc; } public static void main(String[] args){ cad=cargarCad(); abc=esAbecedaria(cad); if(abc) System.out.println("Palabra abecedaria"); else System.out.println("No es abecedaria"); } public static String cargarCad(){ Scanner sc=new Scanner(System.in); System.out.print("Introduce una palabra: "); String cad=sc.nextLine(); cad=cad.toUpperCase(); sc.close(); return cad; } public static boolean esAbecedaria(String cad){ abc=true; con=0; for (int i=0; i< cad.length()-1;i++){ c1=cad.charAt(i); c2=cad.charAt(i+1); if(c1<c2) con++; else break; } if(con==cad.length()-1) abc=true; else abc=false; return abc; } 20 PROGRAMACION Ejercicios 14 SHEILA NIETO UREÑA Ejer15 package cadenas; /* Realice un metodo que reciba un String con una * operacion basica (+, -, *,/) y devuelve el * resultado de esa operacion. Por ejemplo si recibe * 4,5 + 35 debe devolver 39,5. Para esto puede usar solo * los siguientes metodos de la clase String: charAt, length*/ import java.util.Scanner; public class Ejer15 { static Scanner sc=new Scanner(System.in); //No vale la coma (,) solo el punto (.) como separador de los decimales public static String cad="4.5+35",cad1="",cad2=""; public static double n1,n2,resul; public static char op,opc; public static int pos; public static void main(String[]args){ operacion(cad); } public static String leer(String cad){ System.out.print("Introducir cadena: "); cad=sc.nextLine(); return cad; } public static void operacion(String cad){ pos=0; for(int i=0;i<cad.length();i++){ op=cad.charAt(i); switch(op){ case '+': case '-': case '*': case '/': opc=op; pos=i; } } for(int k=0; k<pos;k++) cad1+=cad.charAt(k); n1=Double.parseDouble(cad1); for(int k=(pos+1); k<cad.length();k++) cad2+=cad.charAt(k); n2=Double.parseDouble(cad2); switch(opc){ case '+': System.out.println(n1+n2); break; case '-': System.out.println(n1-n2); break; case '*': System.out.println(n1*n2); break; case '/': if(n2==0) System.out.println("Algo dividido entre CERO, "INDETERMINACION\n" + "No se puede realizar la operacion "); else 21 PROGRAMACION } } } Ejercicios 14 System.out.println(n1/n2); break; 22 SHEILA NIETO UREÑA