编写一个名为
hasComma
的方法,该方法将名称作为参数,并返回一个布尔值,指示它是否包含逗号。如果是,您可以假设它是姓氏第一格式。您可以使用indexOf
String
方法为您提供帮助。编写一个名为
convertName
的方法,该方法将名称作为参数。它应该通过调用hasComma
方法检查它是否包含逗号。如果是,它应该只返回字符串。如果没有,那么它应该假设名称是以名字第一格式,并且它应该返回一个新的字符串,其中包含转换为姓氏逗号优先格式的名称。使用charAt
,length
,substring
和indexOf
方法。在主程序中,循环,询问用户名称字符串。如果字符串不为空,请调用
convertName
并打印结果。当字符串为空时,循环终止。
但是,我的程序不会返回转换后的名称。如果我输入John Smith
之类的名称,程序就会结束,而不是返回Smith, John
。
public static void main(String[] args) {
String name;
Scanner reader = new Scanner (System.in);
System.out.println("Type a name, then press ENTER.");
name = reader.nextLine();
if (name == null) {
return;
} else {
convertName(name);
}
}
public static boolean hasComma(String name) {
return name.indexOf(',') >= 0;
}
public static String convertName(String name) {
if (hasComma(name)) {
return name;
} else {
int index = name.indexOf(' ');
String first = name.substring(0, index);
String last = name.substring(index + 1);
String convertedName = last + ", " + first;
return convertedName;
}
}
答案 0 :(得分:4)
您没有打印方法的输出。
而不是
convertName(name);
写
System.out.println(convertName(name));