java上的字符串排序
我必须以first name/second name/last name/second last name格式询问用户的姓名,并按last name/second name/first name/second name对其进行排序。使用我的代码,我可以访问和排序名字、第二个名字和第二个姓氏,但我找不到访问第一个姓氏的方法。如何获取该字符串并在system.out.println上显示它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)
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构建字符串更为简洁。您能否澄清用户打算输入的程序?用户是否独立且按顺序输入自己的名字、第二个名字和姓氏?用户正在输入自己的名字、第二个名字、姓氏和第二个姓氏。他们很高兴我能帮助他们:)