equalsIgnoreCase不工作(Java)

时间:2018-01-09 05:03:18

标签: java string netbeans equals readfile

这是我的一种方法,它扫描TXT文件并计算单词" Jan"的出现次数。应该是1,因为txt文件中的日期是09年1月9日

static int getFirstMonth() throws FileNotFoundException {
    File file_to_scan = new File("happyFile.txt");
    Scanner scannerInput = new Scanner(file_to_scan);
    int count = 0;
    while (scannerInput.hasNext()) { 
        String nextWord = scannerInput.next(); 
        if (nextWord.equalsIgnoreCase("Jan")) {
            count++;      
        }
    }
    return count;
}

Here是txt文件,任何人都想看看。

如果我正在使用nextWord.equals("Jan"),我会明白为什么它没有提升,因为它不是完整的词,但不应该ignoreCase忽略它并选择连续3个字母?谁能帮助我解决这个问题。

1 个答案:

答案 0 :(得分:2)

String.equals()将比较整个单词。在这种情况下,Scanner.next()是用空格分隔单词,所以它在阅读" 09-Jan-2018"进入nextWord

如果您想查看nextWord是否包含" Jan",请考虑使用类似String.contains()的内容,并且对于不区分大小写,您可以在比较之前将每个字符串转换为小写。

例如:if (nextWord.toLowerCase().contains("jan"))