Java - Detectar palabras y concatenar strings

 
Vista:
sin imagen de perfil

Detectar palabras y concatenar strings

Publicado por Xavi (21 intervenciones) el 10/10/2021 11:53:57
Hola soy nuevo en Java,

Estoy intentando crear un setter llamado setSurname que haga lo siguiente:

Si el apellido que se quiere asignar a un atleta es mayor a 50 carácteres entonces, setSurname no tiene que asignar este apellido al atleta i tiene que imprimir por pantalla el mensaje: "ERROR".

En caso contrario, se tiene que asignar el apellido al atributo surname, teniendo en cuenta que las letras del apellido tienen que guardarse en mayúsculas y que si el apellido está formado por dos nombres separados por un espacio, estos tienen que ser substituïdos por el carácter '_'. Por ejemplo:
1
setSurname ("Gil Garcia")
tiene que ser
1
surname = "GIL_GARCIA"
.

Por el momento he hecho lo siguiente:

1
2
3
4
5
6
7
8
private void setSurname (String surname) {
if(surname.length > 50) {
System.out.println("ERROR")
}else{
// Aquí vendría la condición de reemplazar el espacio por "_" y en mayúsculas.
this.surname = surname.toUpperCase()
}
}
El caso es que no sé como detectar que haya diferentes palabras en el String, sólo se me ocurre la posibilidad de pasarlo todo a mayúsculas pero no se hacer el tratamiento de:

Si el apellido está formado por dos nombres separados por un espacio, estos tienen que ser substituïdos por el carácter '_'

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Detectar palabras y concatenar strings

Publicado por Kabuto (1385 intervenciones) el 10/10/2021 14:25:33
Hola.

Si consultas la API de Java, para la clase String verás que hay un método llamado replaceAll() que te permite especificar que carácter o subcadena quieres "reemplazar" por otro carácter o subcadena.

Gracias a él, puedes decirle que todos los espacios en blanco que encuentre, los cambie por la línea baja.

1
2
3
4
5
6
7
8
private void setSurname (String surname) {
        if(surname.length() > 50) {
            System.out.println("ERROR");
        }else{
            surname = surname.replaceAll(" ", "_");
            this.surname = surname.toUpperCase();
        }
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar