Java从文本(txt)文件中读取字符串

标签 java string bufferedreader filereader

Rod
Rae
Bryan
Shiroe
Ric
Kirito
Asuna
Elsa
Akutabe
Shino

我将该列表保存在一个文本文件中。如果我要输入 Rod,它应该说“存在”,如果我输入一个不在列表中的名字,它应该说“不存在”。但是我的代码发生的事情是它读取文件每行,如果它与字符串行不匹配则打印“不存在”。 因此,如果我输入一个在 txt 文件中不存在的名称,它会打印 10 行“不存在”。

下面是我的代码:

Scanner in = new Scanner(System.in);
    out.print("Enter name: ");
    String name = in.nextLine();

    BufferedReader br = new BufferedReader(new FileReader("name.txt"));
    String line;
    while ((line = br.readLine()) != null) {
        if (line.contains(name)) {
            out.println("Exists");
            break;
        } else {
            out.println("Does not exist");
        }
    }
    br.close();

输出的示例是:

名字 = 桐人

Does not exist
Does not exist
Does not exist
Does not exist
Exists

为什么我的程序在找到完全匹配之前打印了这么多不存在

最佳答案

使用一个boolean 来记住你是否找到了一个匹配项,并且只有在检查了每个项目之后并且只有当你没有找到一个匹配项时才显示“不存在”。

关于Java从文本(txt)文件中读取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28923914/

相关文章:

java - "this"在 Java 中做什么?

java - GlassFish 如何将客户端请求映射到 session

java - MapReduce 作业因 ExitCodeException exitCode=255 失败

c# - 帮助解析字符串(可能使用正则表达式)

c++ - 无法获取 C++ 函数以使用来自用户的字符串

java - BufferedReader 在 Android 应用程序中返回 null,但在 Java 应用程序中不返回 null

java - Spring、Interceptor的extractPathPatterns功能无法正常工作

php - 将目录中的所有文件合并/合并到一个文本文件中

java - 如何更改 txt 文件中的数据(字符串)以便我可以对该数据进行数学运算?

java - 优化新的BufferedReader(输入流)