2016-04-08 54 views
0

我正在嘗試編寫一個排序程序,提示輸入名稱並按字母順序對它們進行排序,並大寫每個名稱的第一個字母。我只是簡單地迷失了。
我在考慮將代碼拆分成兩個方法,一個用於套管,另一個用於排序。Java插入名稱〜CompareTo

這是我走到這一步,爲資本位:

titleCase(String x) 

name = x 

x.toLowerCase 

x.substring(0;)toUppercase 

任何幫助將不勝感激。

最終的結果應該是這樣的:

輸入一個名字:

瑞伯

輸入一個名字:

麗塔

輸入一個名字:

SUE

輸入一個名字:

阿黛爾

輸入一個名字:

芭芭拉

輸入一個名字:

停止

[阿黛爾,芭芭拉,Rita,Sue,Zeb]

+0

那你最近有什麼問題?我們不只是爲你寫一些代碼。你所提供的小代碼甚至沒有有效的代碼 – redFIVE

+0

SO並不是真正的拋棄作業的地方。你有什麼特別的問題?似乎你手頭有大寫字母(有些)。你將如何收集它們?一個列表? –

+1

[按字母順序排列字符串的簡單方法]的可能重複](http://stackoverflow.com/questions/11176227/simple-way-to-sort-strings-in-the-case-sensitive-字母順序) – rafaelbattesti

回答

0

你可以寫接管每個字符的字符串和循環的方法,將它們設置爲適當的值:

public String titleCase(String toEdit) { 
String output = ""; 
String toAppend = ""; 
for (int i = 0; i < toEdit.length; i++) { 
    if (i == 0) { 
    toAppend = (toEdit.charAt(i) + "").toUpperCase(); 
    } else { 
    toAppend = (toEdit.charAt(i) + "").toUpperCase(); 
    } 
    output = output + toAppend; 
} 
return output; 
} 
+0

感謝您的幫助@ nhouser9 – Ferrariman11

+0

@ Ferrariman11樂於幫助。如果它回答了你的問題,那麼如果你將其標記爲答案,或者通過upvote來抵消我通過redFive獲得低投入而失去的聲譽 – nhouser9

0

分離的功能是一個好主意。但是,由於語法錯誤,您編寫的代碼片段將會失敗。它看起來像你在正確的軌道上的套管部分。

查看Java API中的字符串類,並查看compareTo函數,以比較字符串之間是否相互排序。

0

大寫字母第一個字符,將其轉換爲字符串,然後取其餘名稱,小寫字母然後將其連接到第一個字符。如果只有一個字符,那麼只需要大寫字母並將其設爲字符串。

public String nameCase(String name) { 
    if(name == null || name.length() == 0) { 
    return name; 
    } 
    if(name.length() > 1) { 
    return String(Character.toUpperCase(name.charAt(0))).concat(name.substring(1).toLowerCase()); 
    } else { 
    return String(Character.toUpperCase(name.charAt(0))); 
    } 
}