Does this byte array begin with match array content? : Array Compare « Collections Data Structure « Java






Does this byte array begin with match array content?

      
/**********************************************************************************
 *
 * 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 {


  /**
   * 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.Check if a text is present at the current position in a buffer for byte array
2.Check if a text is present at the current position in a buffer(char array and char array)
3.Check if a text is present at the current position in a buffer(char array and string)
4.Returns true if all the references in array1 are equal to all the references in array2 (two null references are considered equal for this test).
5.Returns true if any two items in the array are equal to one another. Any null values in the array are ignored.
6.Tests two float arrays for equality.
7.Does the source array equal the match array
8.Compares the initial elements of two arrays.
9.String search and reflection helper methodsString search and reflection helper methods
10.Checks whether two arrays are the same length, treating null arrays as length 0.
11.Checks whether two arrays are the same type taking into account multi-dimensional arrays.
12.Get the maximum value in a double array
13.Compare equality of two two-dimensional boolean array
14.Two double value arrays are almost equal
15.Find the index of the array nearest to the value.
16.Retrive the quartile value from an array
17.Reverses the contents of the array.