Hola, te traigo los ejercicios resueltos (del 2 al 5):
>Sobre el ejercicio 2:
public static void main(String[] args) {
String palabra;
Scanner sc = new Scanner(System.in);
String array[] = new String[10];
System.out.println("Introduzca 10 palabras:");
for (int i = 0; i <= 9; i++) {
palabra = sc.nextLine();
array[i] = palabra;
}
// Imprimir el array:
System.out.println("El array con las palabras ingresadas es: \n" + Arrays.toString(array));
/*
* Pedir letra:
* Se reutiliza el scanner anterior. Una vez encontradas las palabras,
* se sacan por pantalla. En caso de no haber ninguna, se lanza un mensaje.
*/
String letra;
System.out.println("Introduzca la letra por la que buscar palabras:");
letra = sc.nextLine();
for (int i = 0; i < array.length; i++) {
if (array[i].startsWith(letra)) {
System.out.println(array[i]);
} else {
System.out.println("No hay ninguna palabra que comience por esa letra");
}
}
sc.close();
}
>Sobre el ejercicio 3:
public static void main(String[] args) {
// 1.- Pedir el texto por consola
String texto;
Scanner sc = new Scanner(System.in);
System.out.println("Introduzca el texto deseado:\n");
texto = sc.nextLine();
// 2.- Transformar las minusculas por mayusculas
String array[] = texto.split(" ");
sc.close();
List<String> palabras_cambiadas= new ArrayList<>();
String palabra_mayus="";
for (int i = 0; i < array.length; i++) { //Para cada una de las palabras en el array
String palabra= array[i];
for (int j = 0; j < palabra.length(); j++) { //Para todos las letras en cada palabra
char caracter= palabra.charAt(j); //guardamos el caracter para reusarlo
char caracter_mayus=' '; //la proxima vocal en mayusculas
if(!(Character.isUpperCase(caracter)) //el caracter es minusculo
&& (caracter =='a' || caracter=='e' || caracter=='i' || caracter=='o' || caracter=='u')){ //ese caracter en minuscula es vocal
if(caracter=='a'){ //Identificamos el tipo de vocal y cambiamos a mayusculas
caracter_mayus='A';
}else if(caracter == 'e'){
caracter_mayus='E';
}else if(caracter == 'i'){
caracter_mayus = 'I';
}else if(caracter == 'o'){
caracter_mayus = 'O';
}else if(caracter == 'u'){
caracter_mayus='U';
}
palabra_mayus= palabra.replace(caracter, caracter_mayus); //reemplazamos la antigua vocal minuscula por la actual mayusucula
palabra=palabra_mayus; //repito la operacion para las demas posibles vocales
}
}
palabras_cambiadas.add(palabra); //una vez que la palabra ha sido totalmente cambiada, se mete en la lista de salida
}
System.out.println("El texto inicial era: " +Arrays.toString(array));
System.out.println("Nuevo texto transformado: " + palabras_cambiadas);
}
>Sobre el ejercicio 4:
No lo he hecho porque es idéntico al apartado anterior a excepción de que en vez de cribar por vocales en minúscula, ahora se trata de caracteres especiales. Es más de lo msimo, dale un intento.
>Sobre el ejercicio 5:
public static void main(String[] args) {
//1.- Declaro elementos a usar
String palabra;
Scanner sc = new Scanner(System.in);
List<String> palabras_guardadas = new ArrayList<>();
List<String> palabras_elegidas = new ArrayList<>();
//2.- Pido palabras
System.out.println("Introduce palabras: ");
//3.- Las meto en la lista si no es stop
for (int j = 0; j < 20; j++) { //Tenemos de tope meter 20 palabras, esto es un ejemplo
palabra= sc.nextLine();
if(!palabra.equals("stop")){
palabras_guardadas.add(palabra);
}else{ //4.- En el caso de que sea stop paro y saco las que empiecen por vocal
for (int i = 0; i < palabras_guardadas.size(); i++) {
if(palabras_guardadas.get(i).startsWith("a") ||
palabras_guardadas.get(i).startsWith("e") ||
palabras_guardadas.get(i).startsWith("i") ||
palabras_guardadas.get(i).startsWith("o") ||
palabras_guardadas.get(i).startsWith("u")){
palabras_elegidas.add(palabras_guardadas.get(i));
}
}
System.out.println("Listado de palabras que comienzan por vocal:\n" + palabras_elegidas);
break;
}
}
sc.close();
}
Notas finales:
Como cualquiera pueda apreciar no se han hecho de la mejor de las maneras posibles, y tampoco me he molestado en ello. Me refiero propiamente a los grandes "if-else" para comprobar las vocales. Sé que se puede hacer de otras maneras más cortas y elegantes pero para empezar a entender conceptos tan básicos como los que se pide no creo que esté tan mal del todo.
Cualquier duda, ya sabes, pregunta.
Por otro lado, he de reconocer que me ha venido bien para volver a retormar la programación, que la tenía abandonada desde hace mucho ya, y mañana empiezo de nuevo las clases...
Saludos.