在java上

时间:2016-04-06 20:22:38

标签: java sorting

我必须以第一个名字/第二个名字/姓氏/第二个姓氏的格式询问用户他/她的名字,并按姓氏/名字/名字/名字排序。使用我的代码,我可以访问和排序名字第二个名字和倒数第二个名字,但我找不到访问姓氏的方法。我怎样才能找到该字符串并在system.out.println上显示它?

public static void getNameInOfficialFormat(String name) {
    int index = name.indexOf(" ");
    int secondIndex = name.lastIndexOf(" ");
    String secondLastName = "";
    String secondName = "";

    for (int i = index+1; i < name.length(); i++) {
        if (name.charAt(i)==' ') {
            break;
        }else{
            secondName= secondName.concat(""+name.charAt(i));
        }
    }
    for (int i = secondIndex+1; i < name.length(); i++) {
        if (name.charAt(i)==' ') {
            break;
        }else{
            secondLastName= secondLastName.concat(""+name.charAt(i));
        }
    }
    String nameOfUser="";
    for (int i = 0; i < name.length(); i++) {
        if (name.charAt(i)==' ') {
            break;
        }else{
            nameOfUser= nameOfUser.concat(""+name.charAt(i));
        }

    }
    System.out.println("Sorted name: " + "\n" +secondLastName + " " + nameOfUser + " " +  secondName);
}

1 个答案:

答案 0 :(得分:0)

如果用户使用像John William Doe Jones这样的字符串调用该方法 那么你可以像这样使用split方法:

String[] names = name.split(" ");

知道他会按顺序传递它们然后你将有一个数组按顺序包含每个名字,然后你可以按照自己喜欢的方式对它进行排序。 你可以像这样打印:

System.out.println("Sorted Name:\n" + names[3] + " " + names[0] + " " + names[1] + " " + names[2]);

这将打印琼斯约翰多威廉。我不确定你想要的输出,但基本上名字[0]是约翰(名字),名字[1]是威廉(名字),名字[2]是母鹿(姓氏),名字[3]是琼斯(姓氏)。

我希望这会有所帮助:)