如何比较两个字符串是否相等
时间: 2023-07-26 20:13:27 浏览: 47
在 Java 中,比较两个字符串是否相等,可以使用 `equals()` 或 `equalsIgnoreCase()` 方法。这两个方法都是用来比较两个字符串是否相等的。
`equals()` 方法比较两个字符串的内容是否相等,严格区分大小写,如果相等则返回 `true`,否则返回 `false`。示例代码如下:
```java
String str1 = "hello";
String str2 = "HELLO";
boolean isEqual = str1.equals(str2); // false
```
`equalsIgnoreCase()` 方法比较两个字符串的内容是否相等,不区分大小写,如果相等则返回 `true`,否则返回 `false`。示例代码如下:
```java
String str1 = "hello";
String str2 = "HELLO";
boolean isEqual = str1.equalsIgnoreCase(str2); // true
```
需要注意的是,如果在比较字符串时,其中一个字符串为 `null`,则会抛出 `NullPointerException` 异常。因此,在比较字符串时,最好先判断字符串是否为 `null`。例如:
```java
String str1 = "hello";
String str2 = null;
if (str1 != null && str1.equals(str2)) {
// do something
}
```
相关问题
汇编语言比较两个字符串是否相等
汇编语言比较两个字符串是否相等的一般思路是通过逐个比较字符串中的字符,如果所有字符都相等,则两个字符串相等。下面是一个简单的汇编程序,可以比较两个字符串是否相等:
```
assume cs:code
code segment
; 初始化两个字符串
mov ax, @data
mov ds, ax
lea si, str1
lea di, str2
; 比较两个字符串
cmp_loop:
mov al, [si]
mov bl, [di]
cmp al, bl
jne not_equal
inc si
inc di
cmp byte ptr [si], 0
jne cmp_loop
cmp byte ptr [di], 0
jne not_equal
mov ax, 1 ; 两个字符串相等
jmp done
not_equal:
mov ax, 0 ; 两个字符串不相等
done:
; 程序结束
mov ah, 4ch
int 21h
code ends
end
```
在这个程序中,我们首先通过 `lea` 指令加载两个字符串的地址到 `si` 和 `di` 寄存器中,然后逐个比较字符串中的字符,直到发现一个不相等的字符或者其中一个字符串结束。如果两个字符串都结束了,那么它们是相等的;否则,它们是不相等的。最后,我们将比较结果存储在 `ax` 寄存器中,然后退出程序。
需要注意的是,这个程序只适用于 ASCI 码字符集。如果字符串中包含其它字符集的字符,就需要使用不同的比较方法。
java比较两个字符串是否相等
在 Java 中,比较两个字符串是否相等有两种方式:
1. 使用“==”运算符:这种方式比较的是两个字符串对象的引用地址是否相等,即是否指向同一个对象。例如:
```
String str1 = "hello";
String str2 = "hello";
boolean isEqual = str1 == str2; // isEqual为true,因为str1和str2指向同一个对象
```
2. 使用 equals() 方法:这种方式比较的是两个字符串对象的值是否相等,即字符串中的字符序列是否相同。例如:
```
String str1 = "hello";
String str2 = "hello";
boolean isEqual = str1.equals(str2); // isEqual为true,因为str1和str2的值相等
```
需要注意的是,如果使用“==”运算符比较的是两个字符串对象的引用地址是否相等,而不是比较字符串的值是否相等。因此,在比较字符串是否相等时,应该使用 equals() 方法。