Java 如何将txt文件中的行转换为字符/字符串流
我需要计算txt文件中的行数和单词数,到目前为止,我尝试了以下方法:Java 如何将txt文件中的行转换为字符/字符串流,java,file,io,java-stream,Java,File,Io,Java Stream,我需要计算txt文件中的行数和单词数,到目前为止,我尝试了以下方法: File file = new File("C:\\output_form.txt"); Path path = Paths.get(file.getAbsolutePath()); long lineCount = Files.lines(path).count(); Stream<String> stream = Files.lines(path); long numberOFWords = stream
File file = new File("C:\\output_form.txt");
Path path = Paths.get(file.getAbsolutePath());
long lineCount = Files.lines(path).count();
Stream<String> stream = Files.lines(path);
long numberOFWords = stream
.map(line -> line.codePoints())
.filter(character -> character.findAny().equals("a"))
.count();
System.out.println("Lines: "+lineCount + "\n" +
"Words: "+ numberOFWords);
有关于我做错了什么的提示吗?要计算字数,你应该使用空格
“
和flatMap
将每个单词作为字符串拆分成流
如果您还想过滤任何特定类型的单词,可以在flatMap
之后和count
操作之前添加.filter
如果打算捕获所有字符,您可以将上述解决方案扩展到flatMap
行,以获取相应的字符流
long numberOfCharacters = Files.lines(path)
.flatMap(line -> line.chars().mapToObj(c -> (char) c))
.filter(c -> !c.equals(' '))
.count();
long lineCount = Files.lines(path).count();
long numberOFWords = Files.lines(path)
.flatMap(line -> Arrays.stream(line.split(" "))) // this section
.count();
long numberOfCharacters = Files.lines(path)
.flatMap(line -> line.chars().mapToObj(c -> (char) c))
.filter(c -> !c.equals(' '))
.count();