2014-10-18 6 views
0

У меня есть строка формы «Имя Имя MiddleInitial Lastname».Переупорядочение строки в Java

Я хочу, чтобы преобразовать его в «ФАМИЛИЯ, ИМЯ MiddleIntial»

Некоторые имена могут иметь отчества, но некоторые из них не может:

String Name1 = "John Papa P"; 
String name2 = "Michael Jackson"; 

// Desired Output 
result1 = "Papa, John P"; 
result2 = "Jackson, Michael"; 

Как я могу это сделать?

+0

И в чем вопрос? – fvu

+0

Возможно, 'split()' строка, затем получить доступ к отдельным словам и собрать их в том виде, который вам нравится. – 5gon12eder

+0

Или даже lastIndexOf() http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#lastIndexOf(int) – keuleJ

ответ

2

Может быть что-то вроде этого?

public class HelloWorld{ 

    public static void main(String []args){ 
     String name1 = "John Papa P"; 
     String name2 = "Michael Jackson"; 

     String[] split = name1.split(" "); 

     String result; 
     if (split.length > 2) { 
      result = split[1] + ", " + split[0] + " " + split[2]; 
     } else { 
      result = split[1] + ", " + split[0]; 
     } 

     System.out.println(result); 
    } 
} 
+0

работал как шарм, спасибо – user3528227

1

Вы можете использовать метод split() на своей Строке, чтобы разбить его на массив строк, используя пробел в качестве разделителя, и при необходимости перестроить массив.

1

Возможный способ сделать это - использовать функцию split и внести ее в списки.

String one = "John Doe"; 
    String two = "Albert Einstein"; 
    String [] onelst = one.split(" "); 
    String [] twolst = two.split(" "); 
    String oneMod = onelst[1]+" "+onelst[0]; 
    String twoMod = twolst[1]+" "+twolst[0]; 
    System.out.println(oneMod); 
    System.out.println(twoMod); 

Выход для этого:

Doe John 
Einstein Albert 
1

Просто используйте split(), чтобы создать массив имен. Теперь просто используйте size(), чтобы получить размер массива, если у вас 3, у вас есть MiddleInitial, если 2 нет.

Затем для каждого случая перегруппируйте массив, как вы хотите.

Смежные вопросы