给定两个字符串s和t,判断这两个字符串中的字母是不是完全一样

举报
宇宙之一粟 发表于 2022/05/27 15:19:03 2022/05/27
【摘要】 Java 中,有很多提供字符串比较的方法。使用“==”比较运算符“==”用于检查两个字符串的引用相等性:String s = "Hello, World";String t = "Hello, World"; System.out.println(s == t); // trueSystem.out.println(s.equals(t)); // truepython 中,也可以使用...

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);
    }

  }

}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。