Returns the index in the source array where the first occurrence of the specified byte pattern is found : Array Sort Search « Collections Data Structure « Java






Returns the index in the source array where the first occurrence of the specified byte pattern is found

      
/**********************************************************************************
 *
 * Copyright (c) 2003, 2004 The Regents of the University of Michigan, Trustees of Indiana University,
 *                  Board of Trustees of the Leland Stanford, Jr., University, and The MIT Corporation
 *
 * Licensed under the Educational Community License Version 1.0 (the "License");
 * By obtaining, using and/or copying this Original Work, you agree that you have read,
 * understand, and will comply with the terms and conditions of the Educational Community License.
 * You may obtain a copy of the License at:
 *
 *      http://cvs.sakaiproject.org/licenses/license_1_0.html
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
 * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 **********************************************************************************/


/**
 * Byte utilities
 */
public class ByteUtils {



  /**
   * Returns the index in the source array where the first occurrence of the
   * specified byte pattern is found
   * 
   * @param source
   *          Byte array to examine
   * @param match
   *          Byte array to locate in <code>source</code>
   * @return Index of the first matching character (-1 if no match)
   */
  public static int indexOf(byte[] source, byte[] match) {
    for (int i = 0; i < source.length; i++) {
      if (startsWith(source, i, match)) {
        return i;
      }
    }
    return -1;
  }

  /**
   * Returns the index in the source array where the last occurrence of the
   * specified text (a String, converted to a byte array) is found
   * 
   * @param source
   *          Byte array to examine
   * @param matchString
   *          String to locate in <code>source</code>
   * @return Index of the first matching character (-1 if no match)
   */
  public static int lastIndexOf(byte[] source, String matchString) {
    return lastIndexOf(source, matchString.getBytes());
  }

  /**
   * Returns the index in the source array where the last occurrence of the
   * specified byte pattern is found
   * 
   * @param source
   *          Byte array to examine
   * @param match
   *          Byte array to locate in <code>source</code>
   * @return Index of the last matching character (-1 if no match)
   */
  public static int lastIndexOf(byte[] source, byte[] match) {

    if (source.length < match.length) {
      return -1;
    }

    for (int i = (source.length - match.length); i >= 0; i--) {
      if (startsWith(source, i, match)) {
        return i;
      }
    }
    return -1;
  }

  /**
   * Does this byte array begin with match array content?
   * 
   * @param source
   *          Byte array to examine
   * @param match
   *          Byte array to locate in <code>source</code>
   * @return true If the starting bytes are equal
   */
  public static boolean startsWith(byte[] source, byte[] match) {
    return startsWith(source, 0, match);
  }

  /**
   * Does this byte array begin with match array content?
   * 
   * @param source
   *          Byte array to examine
   * @param offset
   *          An offset into the <code>source</code> array
   * @param match
   *          Byte array to locate in <code>source</code>
   * @return true If the starting bytes are equal
   */
  public static boolean startsWith(byte[] source, int offset, byte[] match) {

    if (match.length > (source.length - offset)) {
      return false;
    }

    for (int i = 0; i < match.length; i++) {
      if (source[offset + i] != match[i]) {
        return false;
      }
    }
    return true;
  }

  /**
   * Does the source array equal the match array?
   * 
   * @param source
   *          Byte array to examine
   * @param offset
   *          An offset into the <code>source</code> array
   * @param match
   *          Byte array to locate in <code>source</code>
   * @return true If the two arrays are equal
   */
  public static boolean equals(byte[] source, byte[] match) {

    if (match.length != source.length) {
      return false;
    }
    return startsWith(source, 0, match);
  }

  /**
   * Copies bytes from the source byte array to the destination array
   * 
   * @param source
   *          The source array
   * @param srcBegin
   *          Index of the first source byte to copy
   * @param srcEnd
   *          Index after the last source byte to copy
   * @param destination
   *          The destination array
   * @param dstBegin
   *          The starting offset in the destination array
   */
  public static void getBytes(byte[] source, int srcBegin, int srcEnd, byte[] destination,
      int dstBegin) {
    System.arraycopy(source, srcBegin, destination, dstBegin, srcEnd - srcBegin);
  }

  /**
   * Return a new byte array containing a sub-portion of the source array
   * 
   * @param srcBegin
   *          The beginning index (inclusive)
   * @param srcEnd
   *          The ending index (exclusive)
   * @return The new, populated byte array
   */
  public static byte[] subbytes(byte[] source, int srcBegin, int srcEnd) {
    byte destination[];

    destination = new byte[srcEnd - srcBegin];
    getBytes(source, srcBegin, srcEnd, destination, 0);

    return destination;
  }

  /**
   * Return a new byte array containing a sub-portion of the source array
   * 
   * @param srcBegin
   *          The beginning index (inclusive)
   * @return The new, populated byte array
   */
  public static byte[] subbytes(byte[] source, int srcBegin) {
    return subbytes(source, srcBegin, source.length);
  }
}

   
    
    
    
    
    
  








Related examples in the same category

1.Quicksort implementation for sorting arrays
2.Search for a specified value of an array
3.Inserting an Element into a Sorted Array
4.How to sort an array
5.Sorting an Array in Descending (Reverse) Order
6.Sort in reverse order
7.Sorting an Array
8.Finding an Element in a Sorted Array
9.Sort array values in descending order
10.Find items in an array
11.Reverses the order of the given object array.
12.Reverses the order of the given long type value array.
13.Reverses the order of the given int type value array.
14.Reverses the order of the given short type value array.
15.Reverses the order of the given char type value array.
16.Reverses the order of the given byte type array.
17.Reverses the order of the given double value type array.
18.Reverses the order of the given float type value array.
19.Reverses the order of the given boolean type value array.
20.Produces a new array containing the elements between the start and end indices.
21.Produces a new long array containing the elements between the start and end indices.
22.Produces a new int array containing the elements between the start and end indices.
23.Produces a new short array containing the elements between the start and end indices.
24.Produces a new char array containing the elements between the start and end indices.
25.Produces a new byte array containing the elements between the start and end indices.
26.Produces a new double array containing the elements between the start and end indices.
27.Produces a new float array containing the elements between the start and end indices.
28.Produces a new boolean array containing the elements between the start and end indices.
29.Get index of long type array
30.Get the index and last index of an int type value array
31.Get the index and last index of a short type value array
32.Get the index and last index of a char type value array
33.Get the index and last index of byte type array
34.Get the index and last index of a double type array
35.Get the element index and last index in a float type value array
36.Get the element index or last index among a boolean type array
37.Finds the index of the given object in the array starting at the given index.
38.Finds the index of the given object in the array.
39.Returns the index in the source array where the first occurrence of the specified text (a String, converted to a byte array) is found
40.Returns the index in the source array where the last occurrence of the specified byte pattern is found
41.Returns the index in the source array where the last occurrence of the specified text (a String, converted to a byte array) is found
42.Returns the maximum value in a byte-type array.
43.Returns the maximum value in a double-type array.
44.Returns the maximum value in a float-type array.
45.Returns the maximum value in a long-value array.
46.Returns the maximum value in a short-type array.
47.Returns the maximum value in an int-type array.
48.Returns the minimum value in a double-type array.
49.Returns the minimum value in a float-value array.
50.Returns the minimum value in a short-type array.
51.Returns the minimum value in an array.
52.Returns the minimum value in an int-type array.
53.Returns the minimum value in an short-type array.
54.Search for an object in an array.
55.Finds the last index of the given object in the array starting at the given index.
56.Finds the last index of the given object within the array.
57.If array contains given element
58.Sort array utilities
59.Check if object 1 contains object 2
60.Returns the number of times a value occurs in a given array
61.Get the index of an array element
62.Sorts parts of the given array with the quicksort algorithm using the given comparator.
63.Return true if the array contains the element.
64.Searches the specified array of doubles for the specified value using the binary search algorithm.
65.Calculate the minimum and maximum values out of a list of doubles
66.Find the index of the value nearest to the key.