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 相关文章推荐
原来Jquery.load的方法可以一直load下去
Mar 28 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
Oct 09 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
Nov 22 Javascript
js实现图片旋转的三种方法
Apr 10 Javascript
Java File类的常用方法总结
Mar 18 Javascript
基于原生JS实现图片裁剪
Aug 01 Javascript
浅谈JavaScript正则表达式-非捕获性分组
Mar 08 Javascript
JavaScript实现移动端轮播效果
Jun 06 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
Sep 18 Javascript
微信小程序左滑删除功能开发案例详解
Nov 12 Javascript
Layui 动态禁止select下拉的例子
Sep 03 Javascript
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 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
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
基于php判断客户端类型
2016/10/14 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
javascript eval函数深入认识
2009/02/21 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
javascript中创建对象的三种常用方法
2010/12/30 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
介绍Python的Django框架中的QuerySets
2015/04/20 Python
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
关于Python的一些学习总结
2018/05/25 Python
Python WEB应用部署的实现方法
2019/01/02 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
Unix如何在一行中运行多个命令
2015/05/29 面试题
网游商务专员求职信
2013/10/15 职场文书
美工的岗位职责
2013/11/14 职场文书
经济学博士求职自荐信范文
2013/11/23 职场文书
毕业生就业推荐信范文
2013/12/01 职场文书
中班幼儿评语大全
2014/04/30 职场文书
车间主任岗位职责
2015/02/03 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL