es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

eliminando el valor nulo en un método toString

Estoy tratando de resolver esta pregunta, no se me permite ver el resto del código porque es una pregunta de un examen antiguo. Básicamente, tengo que crear un método toString para imprimir el nombre, segundo nombre y apellido. Aquí está el problema, mi método toString funciona correctamente hasta que el programa de prueba arroja un valor nulo en uno de los espacios (nombre, segundo nombre o apellido). Mi código debería poder reconocer este valor nulo y omitirlo. ¿Cómo puedo solucionarlo? Este es mi código a continuación.

public class Person {

    // No cambiar nada en la siguiente línea
    String firstName, middleName, lastName;

    public String toString() {
        String result = "";
        if (firstName != null) {
            result += firstName + " ";
        }
        if (middleName != null) {
            result += middleName + " ";
        }
        if (lastName != null) {
            result += lastName;
        }
        return result;
    }
}

Salida:
Esperado: John Fitzgerald Kennedy

Obtenido: John Fitzgerald Kennedy

Esperado: Alan Turing
Obtenido: Alan null Turing

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para solucionar el problema con los valores nulos, puedes agregar una declaración if para verificar si cada campo es nulo antes de agregarlo a la cadena. Aquí hay una versión actualizada del método toString:

    public String toString() {
        String result = "";
        if (firstName != null) {
            result += firstName + " ";
        }
        if (middleName != null) {
            result += middleName + " ";
        }
        if (lastName != null) {
            result += lastName;
        }
        return result;
    }
    

    Este código verifica cada campo en busca de valores nulos antes de agregarlo a la cadena de resultado. Si un campo es nulo, se omite y no se agrega a la cadena. Esto debería solucionar el problema con los valores nulos que causan una NullPointerException en el código original.

Comments are closed.