Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java上的字符串排序_Java_Sorting - Fatal编程技术网

java上的字符串排序

java上的字符串排序,java,sorting,Java,Sorting,我必须以first name/second name/last name/second last name格式询问用户的姓名,并按last name/second name/first name/second name对其进行排序。使用我的代码,我可以访问和排序名字、第二个名字和第二个姓氏,但我找不到访问第一个姓氏的方法。如何获取该字符串并在system.out.println上显示它 public static void getNameInOfficialFormat(String name)

我必须以first name/second name/last name/second last name格式询问用户的姓名,并按last name/second name/first name/second name对其进行排序。使用我的代码,我可以访问和排序名字、第二个名字和第二个姓氏,但我找不到访问第一个姓氏的方法。如何获取该字符串并在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);
}
public静态void getNameInOfficialFormat(字符串名){
int index=name.indexOf(“”);
int secondIndex=name.lastIndexOf(“”);
字符串secondLastName=“”;
字符串secondName=“”;
for(inti=index+1;i
如果用户使用类似John William Doe Jones的字符串调用该方法 然后,您可以像这样使用拆分方法:

String[] names = name.split(" ");
System.out.println("Sorted Name:\n" + names[3] + " " + names[0] + " " + names[1] + " " + names[2]);
知道他将按顺序传递它们,那么您将拥有一个数组,该数组将按顺序包含每个名称,然后您可以按照自己的喜好对其进行排序。 您可以这样打印:

String[] names = name.split(" ");
System.out.println("Sorted Name:\n" + names[3] + " " + names[0] + " " + names[1] + " " + names[2]);
这将打印琼斯·约翰·多伊·威廉。我不确定您想要如何输出,但基本上名称[0]是John(第一个名字),名称[1]是William(第二个名字),名称[2]是Doe(姓),名称[3]是Jones(第二个姓)


我希望这能有所帮助:)

我会先修改你的格式,使它更具可读性。您只需要一小部分行,而使用StringBuilder构建字符串更为简洁。您能否澄清用户打算输入的程序?用户是否独立且按顺序输入自己的名字、第二个名字和姓氏?用户正在输入自己的名字、第二个名字、姓氏和第二个姓氏。他们很高兴我能帮助他们:)