在 Java 中将句子字符串转换为单词的字符串数组

2022-08-31 15:30:32

我需要我的Java程序采用这样的字符串:

"This is a sample sentence."

并将其转换为字符串数组,如下所示:

{"this","is","a","sample","sentence"}

没有句点或标点符号(最好)。顺便说一句,字符串输入始终是一个句子。

有没有一种简单的方法来做到这一点,我没有看到?或者我们真的必须大量搜索空格并从空格之间的区域(它们是单词)创建新字符串吗?


答案 1

String.split() 将完成你想要的大部分工作。然后,您可能需要遍历这些单词以拉出任何标点符号。

例如:

String s = "This is a sample sentence.";
String[] words = s.split("\\s+");
for (int i = 0; i < words.length; i++) {
    // You may want to check for a non-word character before blindly
    // performing a replacement
    // It may also be necessary to adjust the character class
    words[i] = words[i].replaceAll("[^\\w]", "");
}

答案 2

现在,这可以像使用正则表达式一样完成:split

String s = "This is a sample sentence with []s.";
String[] words = s.split("\\W+");

这将给出如下文字:{"this","is","a","sample","sentence", "s"}

将匹配所有出现一次或多次的非字母字符。因此无需更换。您也可以检查其他模式。\\W+