查找行以通知开头并在文本文档中将其删除

时间:2015-06-04 19:14:58

标签: java

我正在尝试从以public开头的测试文档中删除行。我尝试了以下内容,但public行未被删除。我该如何解决? 我感谢任何帮助。

简单:

In less than a week,
public face of FIFA

has gone from something resembling

an old-style Communist Party rally
 to what looks more like a scene from

代码:

try (PrintWriter writer = new PrintWriter("D:\\hl_sv\\" + newName);

        Scanner scanner = new Scanner(file)) {
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                if (!line.equals("public")) {

                    writer.println(line);
                    writer.flush();
                }


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

3 个答案:

答案 0 :(得分:2)

您需要使用String#startsWith(String str)

if (!line.startsWith("public")) {

equals检查整个行是否等于public

答案 1 :(得分:1)

您正在使用equals方法,只有当行只有一个单词public时才会返回true。 equals仅在完全匹配时才返回true。

您应该使用String.startsWith方法而不是相等。

line.startsWith("public")

如果String.contains()可以在字符串

中的任何位置,您也可以使用public

答案 2 :(得分:0)

if (!line.startsWith("public")) {
    //do work
}

你要检查整行是否等于字符串“public”,所以如果行上有任何其他字符则不匹配。需要查看公开是否出现在该行的任何位置。