我正在嘗試編寫一個名爲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();
}
}
我的輸出是:
Enter name #1:roy Enter name #2:DANE Enter name #3:Erik Enter name #4:sTeFaNiE Enter name #5:LaurA Stefanie's name is longest (There was a tie!)
將只打印有每一個invokation.I領帶不知道爲什麼。 其次,
longest = longest.toLowerCase();
longest = Character.toUpperCase (longest.charAt(0)) + longest.substring(1);
我的朋友教我用這個檢索詞,但我仍然不understand.Is有這樣做的其他方式?這對我來說是非常複雜的。
非常感謝。我明白了! – user2179615 2013-04-23 22:38:40
我並不真正熟悉角色的工作方式。因此,從你的代碼中,角色在這種情況下,是指第一個字母是正確的?試圖尋找API來更好地理解它。是否在Character.UnicodeBlock下? – user2179615 2013-04-23 22:42:53
不,'longest.charAt(0)'指的是第一個字符。靜態方法'Character.toUpperCase'接受'char'並返回大寫的'char'。串聯時,Java足夠聰明,可以在連接之前將大寫'char'變成'String'。 – rgettman 2013-04-23 22:45:41