在 Java 中将句子字符串转换为单词的字符串数组
我需要我的Java程序采用这样的字符串:
"This is a sample sentence."
并将其转换为字符串数组,如下所示:
{"this","is","a","sample","sentence"}
没有句点或标点符号(最好)。顺便说一句,字符串输入始终是一个句子。
有没有一种简单的方法来做到这一点,我没有看到?或者我们真的必须大量搜索空格并从空格之间的区域(它们是单词)创建新字符串吗?
我需要我的Java程序采用这样的字符串:
"This is a sample sentence."
并将其转换为字符串数组,如下所示:
{"this","is","a","sample","sentence"}
没有句点或标点符号(最好)。顺便说一句,字符串输入始终是一个句子。
有没有一种简单的方法来做到这一点,我没有看到?或者我们真的必须大量搜索空格并从空格之间的区域(它们是单词)创建新字符串吗?
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]", "");
}
现在,这可以像使用正则表达式一样完成:split
String s = "This is a sample sentence with []s.";
String[] words = s.split("\\W+");
这将给出如下文字:{"this","is","a","sample","sentence", "s"}
将匹配所有出现一次或多次的非字母字符。因此无需更换。您也可以检查其他模式。\\W+