给定两个字符串 s 和 t,判断这两个字符串中的字母是不是完全一样。Java 中,有很多提供字符串比较的方法。
Java 中,有很多提供字符串比较的方法。
使用“==”比较运算符
“==”用于检查两个字符串的引用相等性:
String s = "Hello, World";
String t = "Hello, World";
System.out.println(s == t); // true
System.out.println(s.equals(t)); // true
复制代码
python 中,也可以使用 ==
或使用 .__eq__
函数来检查字符串是否相等。
s = "HelloWorld"
t = "HelloWorld"
print(s==t) # true
print(s.__eq__(t)) # true
复制代码
使用 equalsIgnoreCase()
equalsIgnoreCase() 方法返回一个布尔值。顾名思义,此方法在比较字符串时忽略字符中的大小写:
String s = "Hello, World";
String t = "hello, world";
System.out.println(s.equalsIgnoreCase(t)); // true
复制代码
使用 compareTo()
compareTo() 方法返回一个 int 类型值,并根据字典或自然排序按字典顺序逐字符比较两个字符串。如果两个字符串相等或两者都为空,则此方法返回 0,如果第一个字符串在参数之前,则返回负数,如果第一个字符串在参数字符串之后,则返回大于零的数字。
String s = "Hello, World";
String t = "Hello, World";
System.out.println(s.compareTo(t)); // 0
复制代码
同理,compareToIgnoreCase()
类似于前面的方法,除了它忽略大小写
字符串与对象类的比较
从 Java 1.7 及更高版本开始,我们可以使用 Objects.equals() 来确保两个对象相等,并且它也适用于 String.class。
对象是一个实用类,其中包含静态 equals()方法,在此方案中有用 - 以比较两个字符串。
如果通过使用它们的地址,则两个字符串是相等的,则该方法返回 True。“==”。因此,如果两个参数都为 null,则返回 true,如果恰好一个参数为 null,则返回 false。
package com.yuzhou1su.RelearnJava;
import java.util.Objects;
public class StringCompareUtil {
public static void main(String[] args) {
String s = "Hello, World";
String t = "Hello, World";
System.out.println(Objects.equals(s, t)); // true
}
}
复制代码
自定义比较方法
如果两个字符串长度不相同,一定为 false
然后遍历每个字符串的位置上的字符,每个位置上的字符字母相同为 true。代码如下:
package com.yuzhou1su.RelearnJava;
public class StringCompareUtil {
public static void main(String[] args) {
String s = "Hello, World";
String t = "Hello, World";
int lengthOfStringOne = s.length();
int lengthOfStringTwo = t.length();
boolean isEqual = true;
if (lengthOfStringOne != lengthOfStringTwo) {
isEqual = false; // 长度不相同一定为 fasle
System.out.printf(" s == t is %s", isEqual);
} else {
for (int i=0; i < lengthOfStringOne; i++) {
if (s.charAt(i) != t.charAt(i)) {
isEqual = false;
break;
}
}
System.out.printf("s == t is %s", isEqual);
}
}
}
复制代码
评论