-2
我有这个文本文件,我需要拆分所有单词并对它们进行计数。在文件中,我有以下所有字符(“。”,“,”,“!”,“?”,“”,“;”,“:”,“ - ”)。 如何使用split()方法确保这些字符的非数值将被计数?如何在包含所有不是字母的字符的java文件中拆分文字
我有这个文本文件,我需要拆分所有单词并对它们进行计数。在文件中,我有以下所有字符(“。”,“,”,“!”,“?”,“”,“;”,“:”,“ - ”)。 如何使用split()方法确保这些字符的非数值将被计数?如何在包含所有不是字母的字符的java文件中拆分文字
佑康使用本:
String[] parts = originalString.split("\\W+")
或者,如果你想更具体:
String[] parts = originalString.split("[.\\,\\!\\?\\ \\;\\:\\-\"]");
Java小8例如你在哪里得到地图的所有不同的字和它们的长度。
final Function<String, Stream<String>> split = txt -> Stream.of(txt.split("[ ,!.?:;-]"));
final String txt = "a, ab c! def?";
final Map<String, Integer> words = Stream.of(txt)
.flatMap(split)
.filter(s -> s.length() > 0)
.collect(Collectors.toMap(String::new, String::length, (a, b) -> a));
息率
{ab=2, a=1, c=1, def=3}
我不知道这是否是你想要什么。如果你只是想要一个简单的单词列表,那么使用Collectors.toList()
'text.split(“\\ W +”)'? –
开始消毒文本(删除所有这些字符),然后拆分。 – alfasin
@UsagiMiyamoto这可能是一个问题,例如,单词“不能”可能会被拆分为“can”和“t” - 这是不希望的。 – alfasin