JavaとJavaScriptにおける2つの文字列が等しいかどうかの判定の違いを詳しく紹介

黄舟
リリース: 2017-03-20 14:56:56
オリジナル
1439 人が閲覧しました

この記事では、2 つの 文字列が等しいかどうかを判断する際の Java と JavaScript の違いを主に紹介します。これは非常に優れており、必要な方は参考にしてください。JavaScript は一般的に使用されるスクリプト言語です。また、Javascript で 2 つの文字列が等しいかどうかを判断するには、C++ の String クラスを使用して判断するのと同じです。 2 つの文字列が等しいかどうかを判断するには、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 クラスであることがわかります。ところで、このコードについて言えば、まず 2 つの参照が同じかどうかを判断します。参照が同じであれば、エンティティは当然です。次に、クラスの変換が含まれます:

サブクラスによって作成された

オブジェクト

を親クラスに割り当てます。これを上向き変換のオブジェクトと呼びます。これに基づいて、親クラスのオブジェクトをサブクラスのオブジェクトに変換することもできます。簡単に言うと、クラス間の変換には一定の条件があり、その判断にinstanceofを使用する必要があります。


各クラスのequals()メソッドはObjectクラスから派生しているため、equals()メソッドのパラメータの型がObjectクラスであることを理解するのは難しくありません。 Java の String クラスの CompareTo()

メソッドについて言及する価値があります。基本的に、ほとんどのクラスはこのインターフェイスを実装しているため、

compareTo() のパラメーターは String クラスです。 ps: 1 つは継承に由来し、もう 1 つはインターフェイスに由来します。これが、2 つのパラメーターの型が一致しない理由です。

以上がJavaとJavaScriptにおける2つの文字列が等しいかどうかの判定の違いを詳しく紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート