Java String Ends With endsWith(final byte[] str1, int startIndex1, int endIndex1, final byte[] str2, int startIndex2, int endIndex2)

Here you can find the source of endsWith(final byte[] str1, int startIndex1, int endIndex1, final byte[] str2, int startIndex2, int endIndex2)

Description

ends With

License

Apache License

Declaration

public static boolean endsWith(final byte[] str1, int startIndex1, int endIndex1, final byte[] str2,
            int startIndex2, int endIndex2) 

Method Source Code

//package com.java2s;
/*//from   w w w  . j av a2  s  . c  o  m
 * Copyright (c) 2014  Haixing Hu
 *
 * 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.
 *
 */

public class Main {
    public static boolean endsWith(final byte[] str, int startIndex, int endIndex, final byte ch) {
        if (startIndex < 0) {
            startIndex = 0;
        }
        if (endIndex > str.length) {
            endIndex = str.length;
        }
        return (startIndex < endIndex) && (str[endIndex - 1] == ch);
    }

    public static boolean endsWith(final byte[] str1, int startIndex1, int endIndex1, final byte[] str2,
            int startIndex2, int endIndex2) {
        if (startIndex1 < 0) {
            startIndex1 = 0;
        }
        if (endIndex1 > str1.length) {
            endIndex1 = str1.length;
        }
        if (startIndex2 < 0) {
            startIndex2 = 0;
        }
        if (endIndex2 > str2.length) {
            endIndex2 = str2.length;
        }
        if ((endIndex1 - startIndex1) < (endIndex2 - startIndex2)) {
            return false;
        }
        for (int i1 = endIndex1 - 1, i2 = endIndex2 - 1; i2 >= startIndex2; --i1, --i2) {
            if (str1[i1] != str2[i2]) {
                return false;
            }
        }
        return true;
    }
}

Related

  1. endsWith(CharSequence source, CharSequence search)
  2. endsWith(CharSequence str, char suffix)
  3. endsWith(CharSequence str, CharSequence suffix)
  4. endsWith(final boolean caseSensitive, final String text, final String suffix)
  5. endsWith(final byte[] big, final byte[] suffix)
  6. endsWith(final CharSequence a, final CharSequence b)
  7. endsWith(final CharSequence str, final CharSequence suffix)
  8. endsWith(final CharSequence target, final CharSequence suffix)
  9. endsWith(final Object[] left, final Object[] right, final boolean equals)