equalsIgnoreCase 不工作(Java)
equalsIgnoreCase not working (Java)
这是我的一种方法,它扫描 TXT 文件并计算单词 "Jan" 的出现次数,它应该是 1,因为 txt 文件中的日期是 09-Jan-2018
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 个连续的字母吗?谁能帮我解决这个问题。
String.equals()
将比较整个单词。在这种情况下,Scanner.next()
用白色 space 分隔单词,因此它将“09-Jan-2018”读入 nextWord
。
如果您想查看 nextWord
是否包含 "Jan",请考虑使用 String.contains()
之类的东西,并且为了不区分大小写,您可以在比较之前将每个字符串转换为小写。
例如:if (nextWord.toLowerCase().contains("jan"))
这是我的一种方法,它扫描 TXT 文件并计算单词 "Jan" 的出现次数,它应该是 1,因为 txt 文件中的日期是 09-Jan-2018
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 个连续的字母吗?谁能帮我解决这个问题。
String.equals()
将比较整个单词。在这种情况下,Scanner.next()
用白色 space 分隔单词,因此它将“09-Jan-2018”读入 nextWord
。
如果您想查看 nextWord
是否包含 "Jan",请考虑使用 String.contains()
之类的东西,并且为了不区分大小写,您可以在比较之前将每个字符串转换为小写。
例如:if (nextWord.toLowerCase().contains("jan"))