我们可以通过各种方式比较Java中的字符串-
使用comapareTo()
方法-的的compareTo()方法两个字符串按字典顺序进行比较。比较是基于字符串中每个字符的Unicode值。在字典上比较此String对象表示的字符序列与自变量字符串表示的字符序列。
import java.util.Scanner; public class StringComparison { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter string1: "); String str1 = sc.next(); System.out.println("Enter string2: "); String str2 = sc.next(); int result = str1.compareTo(str2); if (result < 0) { System.out.println("str1 is not equal to str2"); } else if (result == 0) { System.out.println("str1 is equal to str2"); } else { System.out.println("str1 is not equal to str2"); } } }
Enter string1: Hello Enter string2: Hello str1 is equal to str2
Enter string1: hello Enter string2: hi str1 is not equal to str2
使用==运算符-您可以使用==运算符比较两个字符串。但是,它比较给定变量的引用而不是值。
import java.util.Scanner; public class StringComparison { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str1 = "hello"; String str2 = "hello"; if (str1 == str2 ){ System.out.println("Both are equal"); } else { System.out.println("Both are not equal"); } } }
Both are equal
使用String类的equals()方法-接受String作为参数,并将当前字符串与指定对象进行比较。当且仅当参数不为null,并且是一个String对象,表示与此对象相同的字符序列(包括大小写),结果为true。
import java.util.Scanner; public class StringComparison { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter string1: "); String str1 = sc.next(); System.out.println("Enter string2: "); String str2 = sc.next(); boolean bool = str1.equals(str2); if (bool) { System.out.println("Both are equal"); } else { System.out.println("Both are not equal"); } } }
Enter string1: Hello Enter string2: hello Both are not equal
Enter string1: Hello Enter string2: Hello Both are equal
String类的equalsIgnoreCase()方法与该equals()
方法类似,不同之处在于此方法将给定的字符串与当前的一个忽略大小写的字符串进行比较。
import java.util.Scanner; public class StringComparison { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter string1: "); String str1 = sc.next(); System.out.println("Enter string2: "); String str2 = sc.next(); boolean bool = str1.equalsIgnoreCase(str2); if (bool) { System.out.println("Both are equal"); } else { System.out.println("Both are not equal"); } } }
Enter string1: Hello Enter string2: hello Both are equal
问题内容: 我正在尝试为其中一个根据您的回答做出响应的程序编写代码。我想这样做,以便某些变量不区分大小写。例如,如果我的变量等于我希望它也等于。那可能吗? 到目前为止,这是我的代码: 我不想为每个答案都设置2种情况,其中一种是大写,另一种是小写。 稍微偏离主题的问题。如何关闭扫描仪的资源泄漏? 问题答案: 值得一提: 或简单地使用:
问题内容: 如何以不区分大小写的方式比较字符串? 例如,“ Go”和“ go”应视为相等。 问题答案: https://golang.org/pkg/strings/#EqualFold是您要寻找的功能。它的用法如下(来自链接文档的示例):
问题内容: 如何在Python中进行不区分大小写的字符串比较? 我想以一种非常简单且Pythonic的方式封装对常规字符串与存储库字符串的比较。我还希望能够使用常规python字符串在由字符串散列的字典中查找值。 问题答案: 假设字符串:
问题内容: 如何在JavaScript中执行不区分大小写的字符串比较? 问题答案: 最简单的方法(如果您不担心特殊的Unicode字符)是调用:
问题内容: 我有一个函数,返回大小写混合的五个字符。如果我对此字符串进行查询,则无论大小写都将返回该值。 如何使MySQL字符串查询区分大小写? 问题答案: http://dev.mysql.com/doc/refman/5.0/en/case- sensitiveivity.html 默认字符集和排序规则为latin1和latin1_swedish_ci,因此默认情况下非二进制字符串比较不区分大