在Java中重新排列字符串

在Java中重新排列字符串,java,string,Java,String,我有一个字符串的形式Firstname middlefirst Lastname 我想把它转换成Lastname,Firstname middleinitial 有些名称可能有中间首字母,但有些可能没有: String Name1 = "John Papa P"; String name2 = "Michael Jackson"; // Desired Output result1 = "Papa, John P"; result2 = "Jackson, Michael"; 如何实现这一点

我有一个字符串的形式Firstname middlefirst Lastname

我想把它转换成Lastname,Firstname middleinitial

有些名称可能有中间首字母,但有些可能没有:

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

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

如何实现这一点?

您可以对字符串使用split方法,使用空格作为分隔符将其拆分为字符串数组,并根据需要重新排列数组

您可以对字符串使用split方法,使用空格作为分隔符将其拆分为字符串数组,并根据需要重新排列数组

一种可能的方法是使用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

一种可能的方法是使用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

也许是这样的

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);
     }
}

也许是这样的

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);
     }
}
只需使用split创建一个名称数组。现在只需要使用size来获得数组的大小,如果它是3,那么你有MiddleInitial,如果它是2,那么你没有

然后针对每种情况,根据需要重新排列数组。

只需使用split创建名称数组。现在只需要使用size来获得数组的大小,如果它是3,那么你有MiddleInitial,如果它是2,那么你没有


然后,对于每种情况,根据需要重新排列数组。

问题是什么?可能拆分字符串,然后访问单个单词并以您喜欢的形式重新组合。或者甚至lastIndexOf,问题是什么?可能拆分字符串,然后访问单个单词并以您喜欢的形式重新组合。或者甚至lastIndexOf