2014-02-13 211 views
-4

我正在嘗試編寫一個程序來幫助記憶長段落的文本,並且我被卡住了。我想寫一個方法,當傳遞一個字符串時,將返回一個字符串,其中只包含字符串中的單詞的第一個字母,再加上換行符和標點符號。任何幫助?Java - 字符串中每個單詞的第一個字母

實施例:

這是一個測試句子,具有換行\ n和一些標點符號。

T i a t s,t h a n

a s p。

+3

你目前在掙扎着什麼?有任何你需要幫助的代碼? – Warlord

+2

給出一個例子,併發布你到目前爲止嘗試過的東西。 –

+0

舉一些例子.. –

回答

9

用一個正則表達式,你可以簡單地使用(如果你不希望重音符號),輸出

String s = "a long sentence.\nWith a new line, and some punctuation!"; 
System.out.println(s.replaceAll("(\\w)\\w+", "$1")); 

a l s. 
W a n l, a s p! 

說明:

  • \\w代表字符在[a-zA-Z_0-9] =>這將不適用於重音字母
  • (\\w)\\w+尋找一組至少兩個字母
  • $1返回第一個捕獲組(即括號內的部分,即第一個字母)。
+0

這是否適用於收縮? (我不知道他們應該如何處理,但如果輸入是'不'這是否會產生'D't')? – clcto

+0

@clcto我不知道它是否有效,因爲我不知道在這種情況下,操作將會發生什麼。但是,是的,'不'會返回'D't'。 – assylias

相關問題