把這些例子如何獲取字符串中的第二個單詞?
Smith John
Smith-Crane John
Smith-Crane John-Henry
Smith-Crane John Henry
我想的空間後拿到John
的第一個字,但它可能不是直到最後,也可以是直到非字母字符。 Java 1.5會如何呢?
把這些例子如何獲取字符串中的第二個單詞?
Smith John
Smith-Crane John
Smith-Crane John-Henry
Smith-Crane John Henry
我想的空間後拿到John
的第一個字,但它可能不是直到最後,也可以是直到非字母字符。 Java 1.5會如何呢?
您可以使用正則表達式和Matcher
類:
String s = "Smith-Crane John-Henry";
Pattern pattern = Pattern.compile("\\s([A-Za-z]+)");
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
結果:
John
你可以使用String.split:
line.split(" ");
這對於第一行會產生:
{ "Smith", "John" }
然後,您可以迭代這個數組找到它。如有必要,您還可以使用正則表達式作爲分隔符。
這是否足夠好,還是你需要更強大的東西?
個人而言,我真的很喜歡這個字符串標記。我知道這是過時了,這些天,分這麼簡單,所有的,但是......
(因爲家庭作業的高概率的僞碼)
create new string tokenizer using (" -") as separators
iterate for each token--tell it to return separators as tokens
if token is " "
return next token;
完成。
也許把它放在blockquote而不是代碼示例中,以避免語法突出顯示 – Patrick 2010-06-02 21:11:07
StringTokenizer是如此2006. :-)根據Javadoc的說法,StringTokenizer是一個遺留類,由於兼容性原因而保留,儘管它在新代碼中的使用不受歡迎。建議任何尋求此功能的人都使用String或java.util.regex包的拆分方法。' – corsiKa 2010-06-02 21:14:43
@glowcoder我無法弄清楚如何分割來做tokenizer自然做的事情 - 將分隔符作爲記號返回。 – 2010-06-03 20:08:54
在你的第三個例子中是正確的輸出「John」或「John-Henry」? – jasonmp85 2010-06-02 20:53:21
約翰............ – Pentium10 2010-06-02 20:54:30
WTF是「可能的」 - 家庭標籤? – 2010-06-02 21:00:15