首页 > 解决方案 > 从文本文件中删除完全匹配的字符串

问题描述

我正在尝试删除我的文本文件中的特定字符串。当前代码逐行获取,直到命中 50。我正在尝试删除记事本中的字符串(EXACT MATCH!),但不知道该怎么做。

Scanner input = new Scanner(new File("C:\\file.txt"));
            int counter = 0;
            while(input.hasNextLine() && counter < 50) {
                counter++;
                String tempName = input.nextLine();
                //perform my custom code here
                //somehow delete tempName from the text file (exact match)
            }

我试过input.nextLine().replaceFirst(tempName, "");没有任何运气

标签: java

解决方案


如果您使用的是 Java 8,您可以使用java.nio包执行以下操作:

Path p = Paths.get("PATH-TO-FILE");
List<String> lines = Files.lines(p)
              .map(str -> str.replaceFirst("STRING-TO-DELETE",""))
              .filter(str -> !str.equals(""))
              .collect(Collectors.toList());
Files.write(p, lines, StandardCharsets.UTF_8);

推荐阅读