如何从字符串中获取第二个单词?

时间:2010-06-02 20:47:58

标签: java regex

采取这些例子

Smith John
Smith-Crane John
Smith-Crane John-Henry
Smith-Crane John Henry

我想得到John 空格后面的第一个单词,但可能直到结束,它可能直到非字母字符。这将如何在Java 1.5?

4 个答案:

答案 0 :(得分:5)

您可以使用String.split

line.split(" ");

第一行会产生:

{ "Smith", "John" }

然后,您可以遍历数组以找到它。如有必要,您还可以使用正则表达式作为分隔符。

这是否足够好,还是需要更强大的东西?

答案 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

答案 2 :(得分:1)

您需要使用如下的正则表达式。

\s{1}[A-Z-a-z]+

享受!

答案 3 :(得分:1)

我个人非常喜欢字符串标记器。我知道这些日子已经不合时宜了,因为分裂太容易了,但是......

(由于家庭作业的概率很高,因此出现了伪谱)

create new string tokenizer using (" -") as separators
iterate for each token--tell it to return separators as tokens
    if token is " "
        return next token;

进行。