java单机版word-count
java.nio.file.Path.of方法需要jdk11的支持
public static void main(String[] args) {
// 1.利用try-with-resource语句从文件读取每行文字,形成以行为单位的字符串流
try (Stream<String> lineStream = Files.lines(Path.of("/Users/yang/test.txt"), Charset.defaultCharset())) {
List<String> collect = lineStream
.flatMap(line -> Arrays.stream(line.split("\t"))) // 2.将每行字符用制表符切分,每一行就形成了一个单词流,居于内层;然后将所有内层流扁平化,汇聚成一个大的外层流
.distinct() // 3.去重
.collect(Collectors.toList());
System.out.println(collect.size());
collect.forEach(System.err::println); //只能输出所有不重复的单词
} catch (IOException e) {
e.printStackTrace();
}
}
WC:
public static void main(String[] args) {
// 1.利用try-with-resource语句从文件读取每行文字,形成以行为单位的字符串流
try (Stream<String> lineStream = Files.lines(Path.of("/Users/yang/test.txt"), Charset.defaultCharset())) {
List<String> collect = lineStream
.flatMap(line -> Arrays.stream(line.split("\t"))) // 2.将每行字符用制表符切分,每一行就形成了一个单词流,居于内层;然后将所有内层流扁平化,汇聚成一个大的外层流
.map(String::trim)
.collect(Collectors.groupingBy(String::toString));
mapped.forEach((k, v) -> System.err.println(k + "----" + v.size())); //输出所有不重复的单词及数量
} catch (IOException e) {
e.printStackTrace();
}
}
学习使我充实,分享给我快乐!