在 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/12/17 浏览次数:217 分类:Java
-
本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。
如何在 Java 中把 Hashmap 转换为 JSON 对象
发布时间:2023/12/17 浏览次数:187 分类:Java
-
它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。
如何在 Java 中按值排序 Map
发布时间:2023/12/17 浏览次数:171 分类:Java
-
本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map
进行排序,并列出了一些示例代码来理解它。
如何在 Java 中打印 HashMap
发布时间:2023/12/17 浏览次数:192 分类:Java
-
本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。
在 Java 中更新 Hashmap 的值
发布时间:2023/12/17 浏览次数:146 分类:Java
-
本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。
Java 中的 hashmap 和 map 之间的区别
发布时间:2023/12/17 浏览次数:79 分类:Java
-
本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,
在 Java 中获取用户主目录
发布时间:2023/12/17 浏览次数:218 分类:Java
-
这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。
Java 中 size 和 length 的区别
发布时间:2023/12/17 浏览次数:179 分类:Java
-
这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。
Java 中的互斥锁
发布时间:2023/12/17 浏览次数:111 分类:Java
-
了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,