var sb = new StringBuffer ('aZ');
alert (sb.indexOf ('Z', 0)); // 1
alert (sb.indexOf ('Z', 1)); // 1
alert (sb.indexOf ('Z', 2)); // 1 ※本来は -1
alert (sb.indexOf ('Z', 3)); // 1 〃
alert (sb.indexOf ('Z', 4)); // 1 〃
StringBuffer.indexOf()
で
- 1バイトの文字列を検索。
- 検索開始位置に
length
以上の値を指定。 - 末尾の文字が検索する文字と同じ。
という条件の時、-1
ではなく末尾の文字の位置を返してしまいます。
検索する文字列が2バイト以上なら問題ないようですが確証はありません。