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

Pen*_*m10 3 java regex

拿这些例子

Smith John
Smith-Crane John
Smith-Crane John-Henry
Smith-Crane John Henry
Run Code Online (Sandbox Code Playgroud)

我希望得到John 空格后面的第一个单词,但它可能直到最后,它可能直到非字母字符.这将如何在Java 1.5中?

Jus*_*ier 5

你可以使用String.split:

line.split(" ");
Run Code Online (Sandbox Code Playgroud)

对于第一行产生的结果如下:

{ "Smith", "John" }
Run Code Online (Sandbox Code Playgroud)

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

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


Mar*_*ers 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));
}
Run Code Online (Sandbox Code Playgroud)

结果:

John