Here you can find the source of startsWith(CharSequence str, CharSequence prefix)
public static boolean startsWith(CharSequence str, CharSequence prefix)
//package com.java2s; /*//from ww w .j av a 2 s . 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. */ 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; } }