ホームページ > 記事 > ウェブフロントエンド > JavaとJavaScriptにおける2つの文字列が等しいかどうかの判定の違いを詳しく紹介
この記事では、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()
メソッドについて言及する価値があります。基本的に、ほとんどのクラスはこのインターフェイスを実装しているため、 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 クラスです。 ps: 1 つは継承に由来し、もう 1 つはインターフェイスに由来します。これが、2 つのパラメーターの型が一致しない理由です。
以上がJavaとJavaScriptにおける2つの文字列が等しいかどうかの判定の違いを詳しく紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。