The list of methods to do ByteBuffer Search are organized into topic(s).
int
indexOf(ByteBuffer buf, byte value) index Of
if (buf.hasArray()) {
byte[] array = buf.array();
int begin = buf.arrayOffset() + buf.position();
int end = buf.arrayOffset() + buf.limit();
for (int offset = 0; offset < end && offset > -1; ++offset) {
if (array[begin + offset] == value) {
return offset;
} else {
int begin = buf.position();
for (int offset = 0; offset < buf.limit(); ++offset) {
if (buf.get(begin + offset) == value) {
return offset;
return -1;
int
indexOf(ByteBuffer buffer, ByteBuffer pattern) index Of
if (pattern == null || buffer == null) {
return -1;
int n = buffer.remaining();
int m = pattern.remaining();
int patternPos = pattern.position();
int bufferPos = buffer.position();
if (n < m) {
...
int
indexOf(ByteBuffer buffer, ByteBuffer pattern) Returns the index within this buffer of the first occurrence of the specified pattern buffer.
int patternPos = pattern.position();
int patternLen = pattern.remaining();
int lastIndex = buffer.limit() - patternLen + 1;
Label: for (int i = buffer.position(); i < lastIndex; i++) {
for (int j = 0; j < patternLen; j++) {
if (buffer.get(i + j) != pattern.get(patternPos + j))
continue Label;
return i;
return -1;
ByteBuffer
search(ByteBuffer buffer, int n, byte[] param) search
ByteBuffer result = buffer.duplicate();
int step = 0, rem = buffer.position();
while (buffer.hasRemaining()) {
int b = buffer.get();
if (b == param[step]) {
++step;
if (step == param.length) {
if (n == 0) {
...