【发布时间】:2016-03-03 18:08:34
【问题描述】:
我无法理解如何不计算文本文件中的控制字符。除了跳过控制字符\n \r,我的程序什么都做:
文件内容:好的,经过进一步的尝试,我离得更近了。如果我改变:
while (input.hasNext()) {
String line = input.nextLine();
lineCount++;
wordCount += countWords(line);
charcount += line.length();
to
while (input.hasNext()) {
String line = input.next();
lineCount++;
wordCount += countWords(line);
charCount += line.replace("\n", "").replace("\r", "").length();
字符被计算在内,但它弄乱了线条。如果我添加 input.nextLine 它会弄乱字符。
文本文件的内容:
猫
伤心的狗
狗摇摆
import java.io.*;
import java.util.*;
public class Character_count {
public static void main(String args[]) throws Exception {
java.io.File file = new java.io.File("textFile.txt");
// Create a Scanner for the file
Scanner input = new Scanner(file);
int charcount = 0;
int wordCount = 0;
int lineCount = 0;
while (input.hasNext()) {
String line = input.nextLine();
lineCount++;
wordCount += countWords(line);
charcount += line.length();
}
System.out.println("The file " + file + " has ");
System.out.println(charcount + " characters");
System.out.println(wordCount + " words");
System.out.println(lineCount + " lines");
}
private static int countWords(String s) {
Scanner input = new Scanner(s);
int count = 0;
while (input.hasNext()) {
input.next();
count++;
}
return count;
}
}
【问题讨论】:
-
对于字符计数,请尝试在计数之前将
line中的回车符和换行符替换为空。类似charcount += line.replace("\n", "").replace("\r", "").length() -
这对我不起作用
标签: java text io java.util.scanner delimiter