gpt4 book ai didi

java - 计算行数,标记化

转载 作者:行者123 更新时间:2023-12-01 17:30:48 25 4
gpt4 key购买 nike

我想计算文件中的行数,并将其拆分为标记。我似乎无法让我的代码工作,有人可以提供建议吗?提前致谢

import java.util.*;
import java.io.*;

public class kup
{
public static void main(String args[]) throws Exception
{
FileReader fileInput = new FileReader("C:\\save\\input.txt");
BufferedReader readInput = new BufferedReader(fileInput);

FileWriter fileOutput = new FileWriter("C:\\save\\output.txt");
PrintWriter outFile = new PrintWriter(fileOutput);

Scanner scanLine = new Scanner(readInput);
String textInput = scanLine.nextLine();
StringTokenizer stringtokenizer = new StringTokenizer(textInput);

int tokenCount = stringtokenizer.countTokens();
int lineCount = 0;

while(scanLine.hasNextLine())
{
while(stringtokenizer.hasMoreTokens())
{
String string = stringtokenizer.nextToken();
outFile.println(string);
}
lineCount++;
}

outFile.println("Number of words: " +tokenCount);
outFile.println("Number of lines: " +lineCount);

readInput.close();
outFile.close();
}

}

最佳答案

您仅使用第一行初始化标记生成器。我怀疑你想要这样的东西:

int tokenCount = 0;
int lineCount = 0;

while (scanLine.hasNextLine())
{
String line = scanLine.nextLine();
StringTokenizer tokenizer = new StringTokenizer(line);

while (tokenizer.hasMoreTokens())
{
String string = tokenizer.nextToken();
outFile.println(string);
tokenCount++;
}
}

就我个人而言,我可能会坚持使用 BufferedReader 来“逐行读取” - 您在这里并没有真正使用 Scanner 的任何细节。所以:

String line;
while ((line = readInput.readLine()) != null)
{
StringTokenizer tokenizer = new StringTokenizer(line);

while (tokenizer.hasMoreTokens())
{
String string = tokenizer.nextToken();
outFile.println(string);
tokenCount++;
}
}

请注意,您也应该关闭读者/编写者/流的finally block ,或者如果您使用的是Java 7,则使用try-with-resources 语句。

关于java - 计算行数,标记化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11168451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com