gpt4 book ai didi

java - 我需要使用扫描仪和 JFIleChooser 计算文件中子字符串出现的次数

转载 作者:太空宇宙 更新时间:2023-11-04 12:53:20 26 4
gpt4 key购买 nike

我正在尝试学习 Java,我想知道如何计算子字符串在所选文本文件中出现的次数并将其输出到控制台。例如,假设我使用 JFileChooser 从计算机中获取文本文件,我想知道文件中子字符串“if”或“ot”出现了多少次。任何帮助将不胜感激!

import java.util.Scanner;
import javax.swing.JFileChooser;

public class FileReader {
public static void main(String[] args) {
int count = 0;
JFileChooser chooser = new JFileChooser();
Scanner in = new Scanner(/* How do I get the file? */);
{ // file read
while (in.hasNext()) {
count++;
in.next();
}
System.out.println("The word count is " + count);
}
}
}

最佳答案

您需要做的第一件事是实际显示打开的对话框。您可以使用 showOpenDialog 方法来完成此操作。然后,您希望通过调用chooser.getSelectedFile()从选择器中获取选定的文件。该文件存储在变量file中。

现在,您需要打开文件进行读取。在 Java 中,您可以使用 FileInputStream 来完成此操作。您可以将其与您期望文件编码方式的字符编码一起传递给 Scanner 类的构造函数。

现在,您已初始化扫描仪。为了确保完成后所有资源都被释放,您可以使用 Java 的 try-with-resource 语句,其形式为

try (/* open resource */) {/* use resource */}

在这种情况下,扫描仪是应该关闭的资源。当扫描仪关闭时,文件也随之关闭。

然后,您只想计算单词“if”和“ot”的出现次数。为此,您首先要阅读该词。然后,检查它是否等于预期的单词之一。如果是,则增加计数器。请注意,在 Java 中,您无法使用 == 运算符来比较字符串。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

import javax.swing.JFileChooser;

public class FileReader {
public static void main(String[] args) throws FileNotFoundException {
int count = 0;
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File file = chooser.getSelectedFile();
try (Scanner in = new Scanner(new FileInputStream(file), "UTF-8")) {
while (in.hasNext()) {
String token = in.next();
if (token.equals("if") || token.equals("ot")) {
count++;
}
}
}
System.out.println("The word count is " + count);
}
}

关于java - 我需要使用扫描仪和 JFIleChooser 计算文件中子字符串出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35616291/

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