2014-10-18 70 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你不。

然后为每种情况重新排列阵列,如你所愿。