StringBuffer.indexOf
において、String.fromCharCode (0)
で NUL 文字を検索することが出来ます。
var sb = new StringBuffer ('abc');
sb [1] = 0;
var s = String.fromCharCode (0);
alert (sb.indexOf (s)); // 1
// これらの方法では検索できない
alert (sb.indexOf (0)); // -1
alert (sb.indexOf ("")); // -1
alert (sb.indexOf ("\x00")); // -1
NUL の後ろに文字が続いていても考慮されます。
var sb = new StringBuffer ('a*b*c');
sb [1] = sb [3] = 0;
var s = String.fromCharCode (0) + 'c';
alert (sb.indexOf (s)); // 3
ちなみに StringBuffer を文字列で初期化した場合、データ末尾に NUL 文字は付きません。また length を増やした場合は 0 で埋められます。
var sb = new StringBuffer ('abc');
var s = String.fromCharCode (0);
alert (sb.indexOf (s)); // -1
++sb.length;
alert (sb.indexOf (s)); // 3