采取这些例子
Smith John
Smith-Crane John
Smith-Crane John-Henry
Smith-Crane John Henry
我想得到John
空格后面的第一个单词,但可能直到结束,它可能直到非字母字符。这将如何在Java 1.5?
答案 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;
进行。