streakode

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. 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. 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. 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. 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. 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. 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 con String greeting = "Hola";.

    En Java los String van entre comillas dobles. Las simples son solo para un carácter suelto (char), como 'H'.

  7. 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. 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 con System.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).

Más temas de Java

Ver toda la ruta de Java