Compares a byte array part with an array. - Java java.lang

Java examples for java.lang:byte Array Compare

Description

Compares a byte array part with an array.

Demo Code

/*/*w  w w.j a  va 2s . co  m*/
 * DomUI Java User Interface - shared code
 * Copyright (c) 2010 by Frits Jalvingh, Itris B.V.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * See the "sponsors" file for a list of supporters.
 *
 * The latest version of DomUI and related code, support and documentation
 * can be found at http://www.domui.org/
 * The contact for the project is Frits Jalvingh <jal@etc.to>.
 */
//package com.java2s;

public class Main {
    public static void main(String[] argv) throws Exception {
        byte[] a = new byte[] { 34, 35, 36, 37, 37, 37, 67, 68, 69 };
        int from = 2;
        int to = 2;
        byte[] b = new byte[] { 34, 35, 36, 37, 37, 37, 67, 68, 69 };
        System.out.println(compare(a, from, to, b));
    }

    /**
     *   Compares a byte array part with an array.
     */
    public static int compare(byte[] a, int from, int to, byte[] b) {
        //      if(b.length != to-from) throw new IllegalArgumentException("Bad size array passed to compare.");

        int sx = 0;
        int rv = 0;
        for (int i = from; i < to; i++, sx++) {
            if (sx < b.length)
                rv = (a[i] & 0xff) - (b[sx] & 0xff);
            else
                rv = a[i];
            if (rv != 0) {
                return rv > 0 ? -1 : 1;
            }
        }
        return 0;
    }

    static public int compare(byte[] a, int astart, byte[] b, int bstart,
            int len) {
        while (len-- > 0) {
            int rv = a[astart++] - b[bstart++];
            if (rv < 0)
                return -1;
            else if (rv > 0)
                return 1;
        }
        return 0;
    }
}

Related Tutorials