在 Java 中比较字符串
几乎所有的 Java 开发人员都会在某些时候需要比较两个字符串来完成一个应用程序的逻辑。字符串变量是一个字符的集合。要了解对字符串的比较操作,我们首先需要了解字符串的属性。
- 字符串是不可变的。这意味着它们不能增长,对字符串的任何改变都会导致一个新的字符串形成。这是因为它们内部是由字符数组支持的,是不可变的。
- 每当我们说要创建一个字符串时,就会创建两个放在不同内存区域的对象。一个是在堆区创建,而第二个是在 String 常量池中创建。字符串引用将机器指向堆区对象。
比如说
String mystring = "World"
在本例中,mystring
指向存放字符串 World
的堆区。
下面是 java 中用来比较字符串的四种方法,本文将详细解释。
-
compareTo()
方法。 -
相等
==
运算符 -
equals()
方法 -
contentEquals()
方法;
使用 compareTo()
方法比较 Java 中的字符串
它对两个字符串进行词法上的比较。它的工作原理是首先给字符串中的每个字符分配一个 Unicode 值,然后比较这两个字符串。这个过程将结果返回为零、正数或负数。
- 当两个比较的字符串在词法上相等时,结果为零。
- 如果第一个字符串比第二个字符串大,结果为正数。
- 当第二个字符串大于第一个字符串时,结果为负。
compareTo()
方法有两种使用方法。
比较两个字符串文字
让我们比较一下 string1 和 string2。我们比较这两个字符串的结果是一个 int
类型。例子:
public class CompareToCode {
public static void main(String args[]) {
String string1 = "now";
String string2 = "now";
int result = string1.compareTo(string2);
System.out.println(result);
}
}
输出:
0
比较字符串和对象
compareTo()
方法也允许用字符串比较未引用的对象。例子:
public class CompareTo {
public static void main(String args[]) {
String string1 = "now";
int result = string1.compareTo("now");
System.out.println(result);
}
}
输出:
0
compareTo()
区分大小写
compareTo()
方法是区分大小写的。这意味着,即使两个字符串相同,如果它们不一致,它也会显示为不同。例如:
public class CompareTo {
public static void main(String args[]) {
String string1= "hello";
String string2 ="HELLO";
int result= string1.compareTo(string2);
System.out.println(result);
}
}
输出:
-32
世界上的 hello
和 HELLO
与上面的处理方式不同,因此我们得到的结果是-32。
然而,这个字符串类中的另一个方法忽略了大小写敏感度 - compareToIgnoreCase()
。例如:
public class CompareToIgnoreCase {
public static void main(String args[]) {
String string1= "hello";
String string2 ="HELLO";
int result= string1.compareToIgnoreCase(string2);
System.out.println(result);
}
}
输出:
0
相等 ==
操作符方法
它是一个 java 字符串比较方法,比较两个对象是否在同一个内存位置。例子
public class EqualityOperator {
public static void main(String args[]) {
String oneS = new String("Wow");
String twoS = new String("Wow");
System.out.println(oneS == twoS);
}
}
输出:
false
==
运算符比较 oneS 和 twoS 对象,检查它们是否相同。oneS
和 twoS
这两个 Strings 都是不同的引用,因此返回 false
.oneS
和 twoS
是两个不同的对象。然而,它们都有相同的值在其中。
equals()
方法
这是在 Java 中用来比较两个字符串的值的方法。该方法的输出是 true 或 false。如果被比较的字符串的值不相等,那么该方法返回 false。如果被比较的字符串是相等的,那么该方法返回 true。例如
public class Equals {
public static void main(String args[]) {
String oneS = new String("Wow");
String twoS = new String("Wow");
System.out.println(oneS.equals(twoS));
}
}
输出:
true
equals()
方法区分大小写
equals()
方法是区分大小写的,因此将相同的词盖不同的词看成不同的词。例如
public class Equals {
public static void main(String args[]) {
String oneS = new String("Wow");
String twoS = new String("WOW");
System.out.println(oneS.equals(twoS));
}
}
输出:
false
在上面的例子中,使用 equals()
方法将 wow
和 WOW
进行比较,返回 false。
但是,如果你想使用 equals()
方法而不考虑大小写敏感性,你可以使用 equalsToIgnoreCase()
方法。对于上面的例子,equalsIgnoreCase()
将返回 true。
public class EqualsIgnorecase {
public static void main(String args[]) {
String oneS = new String("Wow");
String twoS = new String("WOW");
System.out.println(oneS.equalsIgnoreCase(twoS));
}
}
输出:
true
contentEquals()
方法
这也是一个 java 字符串比较方法,它将字符串缓冲区和字符串进行比较,并返回 false 或 true。如果字符串与被比较的字符串缓冲区相匹配,则该方法返回 true。如果字符串与被比较的字符串缓冲区不匹配,则该方法返回 false。如果字符串与被比较的字符串缓冲区不匹配,则该方法返回 false。
例子:
public class ContentEquals {
public static void main(String args[]) {
String firstS = new String("Here we are");
StringBuffer secondS = new StringBuffer("Here we are");
System.out.println(firstS.contentEquals(secondS));
}
}
输出:
true
相关文章
在 Java 中获取文件大小
发布时间:2023/05/01 浏览次数:139 分类:Java
-
Java 提供了不同的方法来获取文件的字节大小。 本教程演示了在 Java 中获取文件大小的不同方法。使用 Java IO 的文件类获取文件大小 Java IO 包的 File 类提供了以字节为单位获取文件大小的功能。
Java 中的文件分隔符
发布时间:2023/05/01 浏览次数:108 分类:Java
-
本篇文章介绍了 Java 中的文件分隔符。Java 中的文件分隔符 文件分隔符是用来分隔目录的字符; 例如,Unix 使用 /,Windows 使用 \ 作为文件分隔符。
Java 中的文件过滤器
发布时间:2023/05/01 浏览次数:193 分类:Java
-
本篇文章介绍如何在 Java 中使用 FileFilter。FileFilter 用于过滤具有特定扩展名的文件。 Java内置包IO和Apache Commons IO为FileFilter提供了类和接口来进行文件过滤操作。
Java 获取 ISO 8601 格式的当前时间戳
发布时间:2023/05/01 浏览次数:132 分类:Java
-
本篇文章介绍了 ISO 8601 日期格式、其重要性及其在 Java 中的使用。 它还列出了一些优点来强调为什么应该使用 ISO 格式来表示日期。
在 Java 中获取数组的子集
发布时间:2023/05/01 浏览次数:142 分类:Java
-
本篇文章介绍了几种在 Java 中获取数组子集的方法。使用 Arrays.copyOf() 方法获取数组的子集 使用 Arrays.copyOfRange() 方法获取数组的子集
用 Java 填充二维数组
发布时间:2023/05/01 浏览次数:110 分类:Java
-
二维数组是基于表结构的,即行和列,填充二维数组不能通过简单的添加到数组操作来完成。 本篇文章介绍如何在 Java 中填充二维数组。
计算 Java 数组中的重复元素
发布时间:2023/05/01 浏览次数:202 分类:Java
-
本篇文章介绍Java计算数组中重复元素的方法。计算 Java 数组中的重复元素。我们可以创建一个程序来计算数组中的重复元素。 该数组可以是未排序的,也可以是已排序的。
Java 中 List 和 Arraylist 的区别
发布时间:2023/05/01 浏览次数:90 分类:Java
-
表示为单个单元的一组单个对象称为集合。 在 Java 中,Collection 是一个具有多个已定义接口和类的框架,用于将一组对象表示为一个单元。 它允许我们操纵