Ok, entonces es la primera vez que publico aquí, así que tengan paciencia conmigo.¿Intercambia la posición de los elementos dentro de una matriz en java?
Tengo un nombre en el formato de "Smith, Bob I"
y necesito cambiar esta cadena para leer "Bob I. Smith"
. ¿Alguna idea sobre cómo hacer esto?
Esta es una forma en que lo he intentado, y aunque hace el trabajo, se ve bastante descuidado.
public static void main(String[] args) {
String s = "Smith, Bob I.", r = "";
String[] names;
for(int i =0; i < s.length(); i++){
if(s.indexOf(',') != -1){
if(s.charAt(i) != ',')
r += s.charAt(i);
}
}
names = r.split(" ");
for(int i = 0; i < names.length; i++){
}
System.out.println(names[1] +" " + names[2] + " " + names[0]);
}
+1 por el esfuerzo – Venki
Su algoritmo probablemente dependerá un poco de qué tipo de reglas acerca de entrada que tiene, ya que esto puede requerir pasos adicionales para manejar casos especiales o permitan varios atajos porque los datos son consistentes. Por ejemplo: siempre hay un presente inicial en el centro o, a veces, no habrá un segundo nombre o un segundo nombre completo. ¿Qué pasa con títulos como II o Jr? ¿Todos los nombres tienen una primera Y última? Etc. –
De acuerdo, esta es una herramienta que recopila los nombres, ya que provienen de textos no estructurados o se recogen raspando la web. Vienen en todo tipo de formatos, es decir, "Bob I. Smith", "Smith, Bob I", "Bob Smith", "Smith Bob". Necesito desarrollar una forma de convertir todos los nombres en un formato uniformado, que, por ahora, sea 'First M. Last' o 'Last, First M' – Lambda