Java ByteBuffer Search indexOf(ByteBuffer buffer, ByteBuffer pattern)

Here you can find the source of indexOf(ByteBuffer buffer, ByteBuffer pattern)

Description

Returns the index within this buffer of the first occurrence of the specified pattern buffer.

License

Apache License

Parameter

Parameter Description
buffer the buffer
pattern the pattern buffer

Return

the position within the buffer of the first occurrence of the pattern buffer

Declaration

public static int indexOf(ByteBuffer buffer, ByteBuffer pattern) 

Method Source Code


//package com.java2s;
/*/*from  ww  w . j  a v a 2  s.  c o m*/
 * Copyright 2004-2005 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.nio.ByteBuffer;

public class Main {
    /**
     * Returns the index within this buffer of the first occurrence of the
     * specified pattern buffer.
     * 
     * @param buffer
     *       the buffer
     * @param pattern
     *       the pattern buffer
     * @return
     *       the position within the buffer of the first occurrence of the 
     * pattern buffer
     */
    public static int indexOf(ByteBuffer buffer, ByteBuffer pattern) {
        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;
    }
}

Related

  1. binarySearch(ByteBuffer[] cells, ByteBuffer key, Comparator order)
  2. indexOf(ByteBuffer buf, byte b)
  3. indexOf(ByteBuffer buf, byte value)
  4. indexOf(ByteBuffer buffer, byte b)
  5. indexOf(ByteBuffer buffer, ByteBuffer pattern)
  6. indexOf(final ByteBuffer buf, final int c, final int start, final int end)
  7. indexOf(final ByteBuffer haystack, byte[] needle)
  8. search(ByteBuffer buffer, int n, byte[] param)
  9. unsignedBinarySearch(final ByteBuffer array, int position, final int begin, final int end, final short k)