2014-02-13 159 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

相关问题