Java中如何将一个字符串拆分为单词和标点符号

4
我正在尝试将一个字符串分割为单词和标点,并将标点添加到分割产生的列表中。
例如: String c = "help, me!" 我希望列表看起来像这样: ['help', ',', 'me', '!'] 因此,我希望在空格处将字符串分割,并将标点与单词分开。 你有什么想法吗?

我已经更新了我的答案,现在它可以使用第二个正则表达式了。 - sshashank124
2个回答

7
你可以使用以下的 正则表达式 来实现:
String d = Str.split("\\W+");

以下是您问题的更新答案:

String d = Str.split("\\b");

你让我嫉妒了 ;) - Amit Joki
@AmitJoki,哈哈。:)为什么? - sshashank124
你的代表增长速率正在下降 :-/ - Amit Joki
我这里有输出 ['help' 'me']。 - Rudziankoŭ
@AmitJoki,谢谢:)。我会把这当作是一种赞美。 - sshashank124
我不明白为什么这个答案被接受并且得到了投票支持——提供的两个示例都不能给出提问者所要求的输出结果,一个是["help", "me"],另一个是["help", ", ", "me" "!"]——请注意第二个标记后面有一个额外的空格在逗号之后。 - John Wiseman

7
尝试这个。
String str = "help, me!";
        StringTokenizer st = new StringTokenizer(str, ", !", true);
        while (st.hasMoreElements()) {
            System.out.println(st.nextElement());;
        }

输出:

help
,
   <- space
me
!

注意:如果您有更多分隔符,请在StringTokenizer的构造函数的第二个参数中添加。 - tana
这正是我所需要的。谢谢! - Rudziankoŭ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接