Stringクラスオーバーライドメソッドequal
ではcount
,value
およびoffset
を使用してください。何であるかなぜ我々はcountのように単純ではないのですか?length()関数、値は配列toCharArray();
を使用できます。オフセットの場合はlength() - 1をとります。私は、これらのキーワードを数える検索しようとした値とJavaドキュメント内のオフセットが、見つからなかった....Stringクラスでオーバーライドされたequalメソッドを説明してください
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
の
length
あなたは私のopinon値では、Stringクラス内の他のコードplacesesを見なかったがchar配列であります文字列をchar arrとして格納します。offsetはこのchar arrのインデックスであり、文字列を反復して等しいかどうかを調べる文字列です。countは文字列の長さを意味します。 lenght()メソッド –を使用して "toCharArray()"を使用することができます*本当に* wあなたが文字列を比較するたびに新しい配列を作成する必要がありますか?それは本当に私にとっては本当に悪い考えです。 –
探している実装にリンクできますか?それはJava 7 update 6、IIRCを中心に大きく変化しました。 'length() - 1'を使うことのあなたの期待は間違っていますが、私は疑いがあります...あなたが見ている実装を知らないと確かに言うのは難しいです –