2014-10-18 208 views
0

我有一個形式爲「Firstname MiddleInitial Lastname」的字符串。重新排列Java中的字符串

我想將其轉換爲「姓氏,名字MiddleIntial」

有些名字可能有中間字母,但有些人可能不:

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

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

我怎樣才能做到這一點?

+0

有什麼問題嗎? – fvu 2014-10-18 23:35:39

+0

也許'split()'字符串,然後訪問單個單詞並以您喜歡的形式重新組合它們。 – 5gon12eder 2014-10-18 23:37:43

+0

甚至lastIndexOf()http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#lastIndexOf(int) – keuleJ 2014-10-18 23:43:15

回答

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 2014-10-18 23:48:21

1

您可以在您的字符串上使用split()方法將其分割爲一個字符串數組,並使用空格作爲分隔符,並根據需要重新排列數組。

1

一個可能的方法是使用拆分功能並將其設置爲列表。

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你不。

然後爲每種情況重新排列陣列,如你所願。