如何使字符串比较不区分大小写?

2022-08-31 09:04:30

我创建了一个Java程序来比较两个字符串:

String str = "Hello";

if (str.equals("hello")) {
    System.out.println("match");
} else {
    System.out.println("no match");
}

它区分大小写。我怎样才能改变它,使它不是?


答案 1

最好的方法是使用str.equalsIgnoreCase(“foo”)。它专门针对此目的进行了优化。

您还可以在将两个字符串与 进行比较之前将其转换为大写或小写。这是一个技巧,对于可能没有等效项的其他语言来说,记住它很有用。equalsequalsIgnoreCase

str.toUpperCase().equals(str2.toUpperCase())

如果您使用的是非罗马字母,请注意JavaDoc的这一部分,其中说equalsIgnoreCase

请注意,此方法不考虑区域设置,并且将导致某些区域设置的结果不令人满意提供区分区域设置的比较。