AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JavaScript

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

51自学网 http://www.wanshiok.com
java判断字符串相等,js判断字符串相等

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


java判断字符串相等,js判断字符串相等  
上一篇:JavaScript 数据类型详解  下一篇:Javascript中字符串相关常用的使用方法总结