2017-08-25 16 views
-2

我有这个文本文件,我需要拆分所有单词并对它们进行计数。在文件中,我有以下所有字符(“。”,“,”,“!”,“?”,“”,“;”,“:”,“ - ”)。 如何使用split()方法确保这些字符的非数值将被计数?如何在包含所有不是字母的字符的java文件中拆分文字

+0

'text.split(“\\ W +”)'? –

+0

开始消毒文本(删除所有这些字符),然后拆分。 – alfasin

+0

@UsagiMiyamoto这可能是一个问题,例如,单词“不能”可能会被拆分为“can”和“t” - 这是不希望的。 – alfasin

回答

0

佑康使用本:

String[] parts = originalString.split("\\W+") 

或者,如果你想更具体:

String[] parts = originalString.split("[.\\,\\!\\?\\ \\;\\:\\-\"]"); 
0

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()

相关问题