Java 26
Ejercicios de Java sobre Strings
8 ejercicios de Strings en Java. Piensa la respuesta antes de abrirla: la explicación dice por qué las demás opciones fallan.
1 · Elige la respuesta · nivel 1
¿Qué imprime este código?
String s = "hola";s.toUpperCase();System.out.println(s);- Ahola
- BHOLA
- Cnull
- DNo compila
Ver la respuesta
Respuesta: A. hola
String es inmutable: toUpperCase() devuelve un String nuevo y aquí el resultado se pierde. Habría que guardarlo: s = s.toUpperCase().
2 · Elige la respuesta · nivel 1
¿Qué imprime este código?
String input = null;System.out.println("si".equals(input));- Afalse
- Btrue
- CLanza NullPointerException
- DNo compila
Ver la respuesta
Respuesta: A. false
Llamar a equals sobre el literal es seguro: "si" nunca es null y equals(null) devuelve false. Con input.equals("si") saltaría un NullPointerException.
3 · Elige la respuesta · nivel 1
¿Qué imprime este código?
String city = "Sevilla";System.out.println("Vivo en " + city);- AVivo en Sevilla
- BVivo en city
- CVivo enSevilla
- DNo compila
Ver la respuesta
Respuesta: A. Vivo en Sevilla
+ entre un String y otro valor los une en un solo texto. city va sin comillas, así que se usa su valor.
4 · Elige la respuesta · nivel 1
¿Qué imprime este código?
String word = "java";System.out.println(word.length());- A4
- B3
- C5
- Djava
Ver la respuesta
Respuesta: A. 4
length() devuelve cuántos caracteres tiene el String. En Java, en los String es un método y lleva paréntesis.
5 · Encuentra el fallo · nivel 1
Aunque el usuario escriba si, a veces no entra en el if. ¿Qué línea tiene el fallo?
1Scanner in = new Scanner(System.in);2String answer = in.nextLine();3if (answer == "si") {4 System.out.println("Confirmado");5}Ver la respuesta
El fallo está en la línea 3:
if (answer == "si") {== compara referencias, no contenido. Un String leído de la entrada es un objeto distinto del literal "si". Hay que usar answer.equals("si").
6 · Encuentra el fallo · nivel 1
No compila: unclosed character literal. ¿Qué línea tiene el fallo?
1String greeting = 'Hola';2System.out.println(greeting);Ver la respuesta
El fallo está en la línea 1:
String greeting = 'Hola';Se arregla conString greeting = "Hola";.En Java los String van entre comillas dobles. Las simples son solo para un carácter suelto (char), como 'H'.
7 · Elige la respuesta · nivel 2
¿Qué imprime este código?
System.out.println("Total: " + 2 + 3);- ATotal: 23
- BTotal: 5
- CTotal: 2 3
- DNo compila
Ver la respuesta
Respuesta: A. Total: 23
+ se evalúa de izquierda a derecha. "Total: " + 2 ya es un String, así que el 3 se pega detrás como texto. Para sumar primero: "Total: " + (2 + 3).
8 · Encuentra el fallo · nivel 2
Debería imprimir la última letra, pero lanza StringIndexOutOfBoundsException. ¿Qué línea tiene el fallo?
1String word = "hola";2System.out.println(word.charAt(4));Ver la respuesta
El fallo está en la línea 2:
System.out.println(word.charAt(4));Se arregla conSystem.out.println(word.charAt(3));.Las posiciones empiezan en 0: en "hola" van de 0 a 3. La última letra es charAt(word.length() - 1).