java - 在文件中查找特定号码

标签 java java.util.scanner

你好,我正在尝试在java中循环一个文件并仅输出年份有2000的字符串。 由于某种原因,当我执行 .trim().compare(year) 时,它仍然返回所有字符串。我不知道为什么

文件中的字符串示例是

20/04/1999-303009
13/04/2000-2799
06/10/1999-123

例如,在这 3 个中,我只想获取 13/04/2000-2799 (注意文件很大)

这是我迄今为止想到的代码:

public static void main(String[] args) throws IOException {

    //Initiating variables
    String filedir =("c://test.txt");
    ArrayList<String> list = new ArrayList<String>();
    String year = "2000";
    try (Scanner scanner = new Scanner(new File(filedir))) {

        while (scanner.hasNextLine()){
            //  String[] parts = scanner.next().split("-");

            if (scanner.nextLine().trim().contains(year)) {
                System.out.println(scanner.nextLine());
            } 
        }

    } catch (IOException e) {
        e.printStackTrace();
    }
}

最佳答案

您使用了scanner.nextLine()两次。这是一个错误。每次迭代仅调用一次,并将结果分配给 String 值以供使用。

关于java - 在文件中查找特定号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52541917/

相关文章:

java - 是否有不可变(通常是 ConcurrentHashMap)数据结构的官方模式,能够定期替换?

Java 卡转换器 : class does not belong to package\

java - 多线程中不需要的输出

java - 初学者 - 带有扫描仪对象的无限循环

java - 如何从java insert在postgresql中插入包含撇号(单引号)的值?

java - TableViewer 从 ArrayLists Eclipse 插件添加数据

java - 奇/偶输出程序仅给出 1 个答案

java - 即使文件位于同一个包中,也找不到这样的文件或目录

java - 在执行完 Scanner 对象的 close() 方法后,如何再次创建它?

java - 需要 java double 才能不向下舍入