0
File fe = new File("C:\\Users\\" + System.getProperty("user.name") + "\\desktop" + "\\SearchResults.txt");
    String customLoca = "C:\\Users\\" + System.getProperty("user.name") + "\\AppData" + "\\roaming" + "\\.minecraft" + "\\mods" + "\\1.7.10";

    FileWriter fw = null;
    try {
        fw = new FileWriter(fe);
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    File dir = new File(customLoca);
    for (File f : dir.listFiles()) {
        if (f.getName().contains("Toggle")){ 
            try {
                fw.write("Found: "   + f.getName());
                fw.write("\r\n===");
                fw.write("\r\n"); 

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

        }
    }
    try {
        fw.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }

}
}

基本上,上面的代码创建了一个包含结果的文本文档。这可行,但是我必须使其与我希望它找到的文件大小写精确。例如,如果我将“Toggle”替换为“toggle”,则不会出现任何内容。有没有办法让这个不区分大小写?另外,有没有办法可以添加一个 else 参数。因此,如果没有找到任何内容,它将在文本文档中打印“Nothing Found”。谢谢。

4

2 回答 2

0

您可以!string.equalsIgnoreCase()在支票中尝试使用 - 尝试应用以下内容:

if (!toggle.equalsIgnoreCase(file.getName()))

编辑:

你也可以尝试重构这段代码:

        StringBuilder paragraph = new StringBuilder();
        paragraph.append("I am at office.")
                .append("I work at oFFicE.")
                .append("My OFFICE");
        String searchWord = "office";
        Pattern pattern = Pattern.compile(searchWord, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(paragraph);
        int count = 0;
        while (matcher.find())
            count++;
        System.out.println(count);
于 2017-01-26T16:51:02.717 回答
0

不能使用 equalsIgnoreCase() 因为它需要匹配整个名称。建议:

  • 使用正则表达式匹配您的姓名

  • 使用资源尝试

  • try 可以跨越整个方法,多次尝试更慢

  • 使用 StringBuilder 来捕获字符串(不像以前那么重要)

  • Java 不需要 \r - \n 将编写适合操作系统的换行符

  • 永远不要捕获异常,这是一个过度概括

  • 您可以使用字符串“reset”而不是 else,尽管 else 也可以。

     File fe = new File("C:\\Users\\" + System.getProperty("user.name") + "\\desktop" +
                               "\\SearchResults.txt");
     String customLoca =
            "C:\\Users\\" + System.getProperty("user.name") + "\\AppData" + "\\roaming" +
                    "\\.minecraft" + "\\mods" + "\\1.7.10";
    
    try (FileWriter fw = new FileWriter(fe))
    {
       File dir = new File(customLoca);
         for (File f : dir.listFiles())
         {
           String contents = "Nothing Found";
           if (f.getName().matches("(?i).*toggle.*")));
           {
               contents = new StringBuilder("Found: ")
                           .append(f.getName())
                           .append("\n===\n").toString();
           }
           fw.write(contents);
        }
    } 
    catch (IOException ioe)
    {
        ioe.printStackTrace();
    }
    
于 2017-01-26T17:28:26.183 回答