我必须以第一个名字/第二个名字/姓氏/第二个姓氏的格式询问用户他/她的名字,并按姓氏/名字/名字/名字排序。使用我的代码,我可以访问和排序名字第二个名字和倒数第二个名字,但我找不到访问姓氏的方法。我怎样才能找到该字符串并在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);
}
答案 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]是琼斯(姓氏)。
我希望这会有所帮助:)