Java与JavaScript中判断两字符串是否相等的区别

 更新时间:2017年03月13日 11:28:33   作者:哦摩西罗伊  
这篇文章主要介绍了Java与JavaScript中判断两字符串是否相等的区别,非常不错,具有参考借鉴价值,需要的朋友可以参考下

JavaScript是一种常用的脚本语言,这也决定了其相对于其他编程语言显得并不是很规范.在JavaScript中判断两字符串是否相等

直接用==,这与C++里的String类一样.而Java里的等号则是判断两字符串的引用是否一样,判断实体需要用equals()方法,或

者compareTo()方法,这里需要强调的是equals()方法的参数类型,其参数类型绝对不是String类,而是Object类,咱不止一次看

到国内一些教程写的是String类(o(╯□╰)o)

大家可以看看JDK的源码:

public boolean equals(Object anObject) {
    if (this == anObject) {
      return true;
    }
    if (anObject instanceof String) {
      String anotherString = (String) anObject;
      int n = value.length;
      if (n == anotherString.value.length) {
        char v1[] = value;
        char v2[] = anotherString.value;
        int i = 0;
        while (n-- != 0) {
          if (v1[i] != v2[i])
              return false;
          i++;
        }
        return true;
      }
    }
    return false;
  }

我们可以看到参数类型为Object类,顺带也说说这个代码,首先判断两者引用是否相同,如果引用相同的话实体自然相同.接下来就涉及到类的转换:

我们将子类创建的对象赋给父类,我们称之为上转型对象。在此基础上,还可以将父类对象转换成子类对象.简单来说,类之间的转换是有一定的条件的,并且需要用instanceof来判断。

每个类中的equals()方法来源于Object类,这样也不难理解equals()方法的参数类型是Object类。值得一提的是,Java中String类的compareTo()

方法:

 public int compareTo(String anotherString) {
    int len1 = value.length;
    int len2 = anotherString.value.length;
    int lim = Math.min(len1, len2);
    char v1[] = value;
    char v2[] = anotherString.value;
    int k = 0;
    while (k < lim) {
      char c1 = v1[k];
      char c2 = v2[k];
      if (c1 != c2) {
        return c1 - c2;
      }
      k++;
    }
    return len1 - len2;
  }

compareTo()中参数为String类,因为String类实现了Comparable接口.基本上绝大多数类都实现了这一个接口(ps:一个来源于继承,一个来源于接口这就是两者参数类型不一致的原因诶)。

以上所述是小编给大家介绍的Java与JavaScript中判断两字符串是否相等的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • JS基于FileSystemObject创建一个指定路径的TXT文本文件

    JS基于FileSystemObject创建一个指定路径的TXT文本文件

    这篇文章主要介绍了JS基于FileSystemObject创建一个指定路径的TXT文本文件,涉及javascript使用ActiveXObject控件中FileSystemObject对象模型的基本技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • JS中的substring和substr函数的区别说明

    JS中的substring和substr函数的区别说明

    stringObject.substring(start,stop)与substr(start,length)有什么区别,下面为大家详细介绍下,感兴趣的朋友可以参考下哈
    2013-05-05
  • JavaScript实现form表单的多文件上传

    JavaScript实现form表单的多文件上传

    这篇文章主要为大家详细介绍了JavaScript实现form表单的多文件上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • JavaScript利用el-table实现绘制热度表

    JavaScript利用el-table实现绘制热度表

    这篇文章主要为大家详细介绍了JavaScript如何利用el-table实现绘制热度表,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-03-03
  • JS+ACTIVEX实现网页选择本地目录路径对话框

    JS+ACTIVEX实现网页选择本地目录路径对话框

    使用ACTIVEX对象遍历本地磁盘和目录,只需网页启用相关ACTIVEX的INTERNET选项即可实现路径选择对话框,感兴趣的你可以参考下哈希望可以帮助到你
    2013-03-03
  • js实现鼠标跟随运动效果

    js实现鼠标跟随运动效果

    这篇文章主要为大家详细介绍了js实现鼠标跟随运动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • JS如何将当前日期或指定日期转时间戳

    JS如何将当前日期或指定日期转时间戳

    这篇文章主要介绍了js将当前日期或指定日期转时间戳超详细,通过实例代码介绍了JS时间戳转换方式,需要的朋友可以参考下
    2023-05-05
  • JavaScript动画实例之粒子文本的实现方法详解

    JavaScript动画实例之粒子文本的实现方法详解

    这篇文章主要介绍了JavaScript动画实例之粒子文本的实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • DWR3 访问WEB元素的两种方法实例详解

    DWR3 访问WEB元素的两种方法实例详解

    这篇文章主要介绍了DWR3 访问WEB元素的两种方法实例详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • webpack4 升级迁移的实现

    webpack4 升级迁移的实现

    这篇文章主要介绍了webpack 4 升级迁移的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09

最新评论