我无法理解如何不计算文本文件中的控制字符。我的程序除了跳过控制字符 \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;
}
}
最佳答案
您可以像这样用空字符串替换所有的 \n
和 \r
:
line = line.replaceAll("\\r?\\n", "")
现在您可以进行计数,它不会考虑任何 \n
或 \r
。
您也可以这样做(不使用正则表达式):
line = line.replace("\n", "").replace("\r", "")
关于java - 如何不计算文本文件中的控制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35779745/