Java 中忽略大写和小写
本篇文章介绍如何在 Java 中忽略字符串的大小写。
字符串是一个字符序列,在 Java 中,它是一个类,还包含多个实用方法。字符串可以是小写或大写或两者的混合,这很好,但有时在比较字符串时会产生问题,因为每个字符都有唯一的 Unicode 值。
在本文中,我们将学习在忽略大小写的情况下处理字符串。我们熟悉使用 equals()
方法比较两个字符串。当两个字符串相等时,此方法返回 true
,包括它们的大小写。
例如,看下面的例子。
import java.util.*;
import java.lang.Object;
public class SimpleTesting {
public static void main(String args[]) {
String a = "SimpleTesting";
String b = "SimpleTesting";
String c = "SimpleTesting";
a.equals(b); // return false
a.equals(c); // returns true
}
}
这让我们想知道是否有任何方法可以在忽略它们的情况下比较两个字符串。
那么,Java 为我们提供了各种方法来完成这项任务。在这里,我们将详细讨论这些方法:
-
使用
toUppercase()
方法忽略大小写 -
使用
toLowerCase()
方法忽略大小写 -
使用
equalsIgnoreCase()
方法忽略大小写 -
使用
compareToIgnoreCase()
方法忽略大小写
在 Java 中使用 toUppercase()
方法忽略大小写
在这种方法中,我们首先将两个字符串都转换为大写,然后调用 equals()
方法。此方法的签名是:
public String toUpperCase()
此方法根据默认语言环境将所有字符串字符转换为大写。这意味着只有在默认语言环境为 Locale.ENGLISH
或 Locale.US
时,icecream
才会转换为 ICECREAM
。
如果默认本地设置为无法识别这些字符的其他国家或语言,我们可能会得到不可预知的结果。我们可以将语言环境传递给函数调用来避免这种情况。
现在让我们使用 Java 中的 toUpperCase()
和 equals()
方法比较两个字符串。看下面的代码:
import java.util.*;
import java.lang.Object;
public class SimpleTesting {
public static void main(String args[]) {
String desert1 ="icecream";
String desert2 = "IceCream";
//converting to both the strings to upper case
String desert1_converted = desert1.toUpperCase();
String desert2_converted = desert2.toUpperCase();
//comparing both the desert
boolean same_or_not1 = desert1_converted.equals(desert2_converted);
boolean same_or_not2 = desert1.equals(desert2);
System.out.println("Comparison with conversion: " +same_or_not1);
System.out.println("Comparison without conversion: " +same_or_not2);
}
}
输出:
Comparison with conversion: true
Comparison without conversion: false
在上面的示例中,toUpperCase()
无需传递语言环境就可以正常工作,因为我们的默认语言环境是英语。
在 Java 中使用 toLowerCase()
方法忽略大小写
此方法与前一种方法一样,只是它将两个字符串的所有字符都转换为小写。方法签名是:
public String toLowerCase()
根据默认语言环境,此过程将字符串中的所有字符更改为小写。
这意味着如果默认语言环境是 Locale.ENGLISH
或 Locale.US
,那么 ICECREAM
将被转换为 icecream
。如果默认本地设置为无法识别这些字符的其他国家或语言,我们可能会得到不可预知的结果。
我们可以将语言环境作为参数传递给函数调用来避免这种情况。让我们仔细看看这个功能是如何运作的。
现在让我们使用 Java 中的 toLowerCase()
和 equals()
方法比较两个字符串。看下面的代码:
import java.util.*;
import java.lang.Object;
public class SimpleTesting {
public static void main(String args[]) {
String desert1 ="icecream";
String desert2 = "IceCream";
//converting to both the strings to lower case
String desert1_converted = desert1.toLowerCase();
String desert2_converted = desert2.toLowerCase();
//comparing both the desert
boolean same_or_not1 = desert1_converted.equals(desert2_converted);
boolean same_or_not2 = desert1.equals(desert2);
System.out.println("Comparison with conversion: " +same_or_not1);
System.out.println("Comparison without conversion: " +same_or_not2);
}
}
输出:
Comparison with conversion: true
Comparision without conversion: false
在 Java 中使用 equalsIgnoreCase()
方法忽略大小写
equalsIgnoreCase() 这个方法和 equals()
方法一样,只是它忽略了字符串的大小写。我们先来看看方法签名。
public boolean equalsIgnoreCase(String anotherString)
如果两个字符串在忽略大小写后相等,则此方法返回 true
。
如果两个字符串的长度相同,并且两个字符串中对应的字符相同,则认为它们相等,忽略大小写。根据这种方法,ICECREAM
和 icecream
是相同的;因此,将返回 true
。
查看下面的代码以了解它是如何工作的。
import java.util.*;
import java.lang.Object;
public class SimpleTesting {
public static void main(String args[]) {
String desert1 ="icecream";
String desert2 = "IceCream";
//comparing both the deserts
boolean same_or_not1 = desert1.equalsIgnoreCase(desert2);
System.out.println("Comparison : " +same_or_not1);
}
}
输出:
Comparison : true
在 Java 中使用 compareToIgnoreCase()
方法忽略大小写
compareToIgnoreCase()
方法按字典顺序比较两个字符串,不考虑大小写差异。此方法返回一个整数,该整数等于前两个不相等字符之间的差。
它的签名是:
public int compareToIgnoreCase(String str)
如果两个字符串相等,则返回 0
。看下面的示例代码:
import java.util.*;
import java.lang.Object;
public class SimpleTesting {
public static void main(String args[]) {
String desert1 ="icecream";
String desert2 = "IceCream";
//comparing both the deserts
int same_or_not1 = desert1.compareToIgnoreCase(desert2);
System.out.println("Comparision : " +same_or_not1);
}
}
输出:
Comparision : 0
相关文章
使用 Mysqldump 备份 MySQL 中的数据
发布时间:2023/05/09 浏览次数:192 分类:MySQL
-
本篇文章将介绍如何使用 mysqldump 只备份数据。 在这里,我们将探讨 --no-create-info 、--compact 、--skip-triggers 和 --no-create-db 选项。
更新 MySQL 表中的主键
发布时间:2023/05/09 浏览次数:61 分类:MySQL
-
本篇文章介绍如何更新 MySQL 表中的主键。 我们将使用 ALTER 命令对主键进行任何更改。更新 MySQL 表中的主键 我们可以在多种情况下更新 MySQL 表中的主键。
在 MySQL 中获取命令历史记录
发布时间:2023/05/09 浏览次数:150 分类:MySQL
-
本文重点介绍了在 Windows 和 Linux 中获取我们已执行的 MySQL 命令历史记录的各种方法。MySQL命令历史
Oracle 的 decode 函数在 MySQL 中的等价物
发布时间:2023/05/09 浏览次数:115 分类:MySQL
-
本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。
在 Linux 中安装 MySQL 客户端
发布时间:2023/05/09 浏览次数:72 分类:MySQL
-
在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。
在 MySQL 中转换为十进制
发布时间:2023/05/09 浏览次数:150 分类:MySQL
-
有时,我们可能需要将一种数据类型转换为另一种数据类型。 下面是我们如何使用带有 DECIMAL(M,D) 的 CAST() 和 CONVERT() 函数在 MySQL 中转换为十进制。
在 MySQL 中获取当前日期和时间
发布时间:2023/05/09 浏览次数:145 分类:MySQL
-
本篇文章我们将学习 NOW()、CURRENT_TIMESTAMP()(也写为 CURRENT_TIMESTAMP)和 SYSDATE() 来获取 MySQL 中的当前日期和时间。 我们还将看到这三个功能之间的比较。在 MySQL 中获取当前日期和时间
更改 MySQL 服务器中的 max_allowed_packet Size
发布时间:2023/05/09 浏览次数:142 分类:MySQL
-
本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。
仅在 MySQL 中按日期对日期时间列进行分组
发布时间:2023/05/09 浏览次数:75 分类:MySQL
-
本篇文章使用 GROUP BY 子句、COUNT() 和 DATE() 函数仅在 MySQL 中按 DATE 对 DATETIME 类型列进行分组。