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


Posted in Javascript onMarch 13, 2017

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中判断两字符串是否相等的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
AJAX的跨域与JSONP(为文章自动添加短址的功能)
Jan 17 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
用Move.js配合创建CSS3动画的入门指引
Jul 22 Javascript
javascript弹出窗口实现代码
Nov 12 Javascript
jQuery div拖拽用法实例
Jan 14 Javascript
BootStrap中Table分页插件使用详解
Oct 09 Javascript
浅谈React Event实现原理
Sep 20 Javascript
新手简单了解vue
May 29 Javascript
jquery实现简单拖拽效果
Jul 20 jQuery
vue实现公共方法抽离
Jul 31 Javascript
PHP读取远程txt文档到数组并实现遍历
Aug 25 Javascript
jquery实现抽奖功能
Oct 22 jQuery
Javascript中字符串相关常用的使用方法总结
Mar 13 #Javascript
利用Javascript裁剪图片并存储的简单实现
Mar 13 #Javascript
js实现手机发送验证码功能
Mar 13 #Javascript
Javascript封装id、class与元素选择器方法示例
Mar 13 #Javascript
原生js实现吸顶效果
Mar 13 #Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
Mar 13 #Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 #Javascript
You might like
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
js中运算符&amp;&amp; 和 || 的使用记录
2014/08/21 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
python实现扫描ip地址的小程序
2019/04/16 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
澳大利亚最受欢迎的美发和美容在线商店:Catwalk
2018/12/12 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
水利公司纪检监察自我鉴定
2014/02/25 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS