Here you can find the source of endsWith(String source, String target, boolean caseSensitive)
public static boolean endsWith(String source, String target, boolean caseSensitive)
//package com.java2s; /* MarcWorx MARC Library - Utilities for manipulation of MARC records Copyright (C) 2013 Todd Walker, Talwood Solutions This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version./*from www .j a v a 2s .c o m*/ This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ public class Main { public static boolean endsWith(String source, String target, boolean caseSensitive) { boolean result = false; if (!isEmpty(source) && !isEmpty(target) && source.length() >= target.length()) { if (caseSensitive) { result = target.equals(source.substring(source.length() - target.length(), source.length())); } else { result = target .equalsIgnoreCase(source.substring(source.length() - target.length(), source.length())); } } return result; } public static boolean isEmpty(String str) { return (str == null || str.length() == 0); } public static int length(String source) { int result = 0; if (isNotEmpty(source)) { result = source.length(); } return result; } public static boolean equals(String source, String target, boolean caseSensitive) { boolean result = false; if (isEmpty(source) && isEmpty(target)) { result = true; } else if (!isEmpty(source) && !isEmpty(target)) { if (caseSensitive) { result = target.equals(source); } else { result = target.equalsIgnoreCase(source); } } return result; } public static String substring(String source, int offset, int dataLength) { StringBuilder sb = new StringBuilder(); if (!isEmpty(source) && source.length() >= offset + dataLength) { sb.append(source.substring(offset, offset + dataLength)); } return sb.toString(); } public static boolean isNotEmpty(String str) { return !isEmpty(str); } }