Return true if one CharSequence starts with the other. - Java java.lang

Java examples for java.lang:String Start

Description

Return true if one CharSequence starts with the other.

Demo Code

/*/*  w ww .j av  a2s. co m*/
StringUtils.java : A stand alone utility class.
Copyright (C) 2000 Justin P. McCarthy

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, see <http://www.gnu.org/licenses/>.

To further contact the author please email jpmccar@gjt.org


Modifications, copyright 2001-2014 Tuma Solutions, LLC; distributed under the
LGPL, as described above.

 */
//package com.java2s;

public class Main {
    /** Return true if one CharSequence starts with the other.
     * 
     * This performs the equivalent of String.startsWith, but accepts arbitrary
     * CharSequence objects.  (Thus, it works for StringBuffer arguments.)
     */
    public static boolean startsWith(CharSequence str, CharSequence prefix) {
        return startsWith(str, prefix, 0);
    }

    /** Return true if one CharSequence starts with the other, starting at a
     * particular point in the string.
     * 
     * This performs the equivalent of String.startsWith, but accepts arbitrary
     * CharSequence objects.  (Thus, it works for StringBuffer arguments.)
     */
    public static boolean startsWith(CharSequence str, CharSequence prefix,
            int offset) {
        // guard against null arguments
        if (str == null || prefix == null)
            return false;

        // quick optimization for pure string args
        if (str instanceof String && prefix instanceof String)
            return ((String) str).startsWith((String) prefix, offset);

        // quick test to see if lengths make a "startsWith" impossible
        if (str.length() < prefix.length() + offset)
            return false;

        // walk over the characters in question, looking for mismatches.
        int j = prefix.length() + offset;
        for (int i = prefix.length(); i-- > 0;)
            if (str.charAt(--j) != prefix.charAt(i))
                return false;

        // must be a match.
        return true;
    }
}

Related Tutorials