gpt4 book ai didi

带有 "[^a-zA-Z0-9]+"的 Java String.split 仍然将空格显示为一个单词

转载 作者:行者123 更新时间:2023-11-29 07:54:45 24 4
gpt4 key购买 nike

我在使用 Java 为给定文档创建单词到频率映射的程序时遇到问题。当我打印出所有单词时,我仍然将“”视为一个“单词”。

这里是解释的代码:

String delimiters = "[^a-zA-Z0-9]+";
String[] words;
SortedSet<String> allWords = new TreeSet<String>();
Map<String, Map<String, Integer>> wordMap = new HashMap<String, Map<String, Integer>>();

while ((line = bufferedReader.readLine()) != null) {
words = line.split(delimiters);
for all words add the word to the allWords set and the wordMap
}

for (String word : allWords) {
System.out.println(word + " : " + wordMap.get(word).entrySet());
}

这是一些示例输出:

Time elapsed: 0.75 seconds.
: [books/dickens.txt=7] // WHAT ARE YOU?!?! How does this happen??!?!
10 : [books/dickens.txt=2]
11th : [books/dickens.txt=2]
12th : [books/dickens.txt=2]

这个空白是怎么出现的?谢谢

ps如果你想在这里看到完整的代码是a link

最佳答案

表示不是空格就是空字符串。当文件中有空行时会发生这种情况。

做这样的事情

words = "".split(delimiters);

生成一个包含一个元素的数组,该元素是一个空字符串。

关于带有 "[^a-zA-Z0-9]+"的 Java String.split 仍然将空格显示为一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18645115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com