我正在尝试编写一个名为longestName 的静态方法,该方法读取用户键入的名称并打印最长的名称(包含最多字符的名称)。
最长的名字应该首字母大写,后面的所有字母小写,不管用户在输入名字时使用的大小写。如果两个或多个名称之间的最长并列,请使用最早键入的并列名称。还打印一条消息,说明有平局,如下面的右侧日志所示。如果一些较短的名称长度相同,例如 DANE 和 Erik ;但不要打印消息,除非领带位于最长的姓名之间。
public static void longestName(Scanner console, int n) {
String name = "";
String longest= "";
boolean areTies = false;
for(int i=1; i<=n; i++) {
System.out.print("Enter name #" + i + ":");
name = console.next();
if(name.length( ) > longest.length( )) {
longest = name;
areTies = false;
}
if(name.length( ) == longest.length( ) ) {
areTies = true;
}
}
// now change name to all lower case, then change the first letter
longest = longest.toLowerCase( );
longest = Character.toUpperCase (longest.charAt( 0 ) ) + longest.substring(1);
System.out.println(longest + "'s name is longest");
if(areTies==true) {
System.out.println(" (There was a tie! ) " );
}else{
System.out.println();
}
}
我的输出是:
输入姓名#1:roy 输入姓名#2:DANE 输入姓名 #3:Erik 输入名称 #4:sTeFaNiE 输入姓名 #5:LaurA 斯蒂芬妮的名字最长 (有一条领带!)
它只会打印每次调用都有一条领带。我不知道为什么。第二,
longest = longest.toLowerCase( );
longest = Character.toUpperCase (longest.charAt( 0 ) ) + longest.substring(1);
我的朋友教我用这个来检索单词,但我还是不明白。还有其他方法吗?这对我来说很复杂。