Java tutorial
import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /* * JBoss DNA (http://www.jboss.org/dna) * See the COPYRIGHT.txt file distributed with this work for information * regarding copyright ownership. Some portions may be licensed * to Red Hat, Inc. under one or more contributor license agreements. * See the AUTHORS.txt file in the distribution for a full listing of * individual contributors. * * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA * is licensed to you 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. * * JBoss DNA 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 software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ /** * Utilities for string processing and manipulation. */ public class StringUtil { /** * Truncate the supplied string to be no more than the specified length. This method returns an empty string if the supplied * object is null. * * @param obj the object from which the string is to be obtained using {@link Object#toString()}. * @param maxLength the maximum length of the string being returned * @return the supplied string if no longer than the maximum length, or the supplied string truncated to be no longer than the * maximum length (including the suffix) * @throws IllegalArgumentException if the maximum length is negative */ public static String truncate(Object obj, int maxLength) { return truncate(obj, maxLength, null); } /** * Truncate the supplied string to be no more than the specified length. This method returns an empty string if the supplied * object is null. * * @param obj the object from which the string is to be obtained using {@link Object#toString()}. * @param maxLength the maximum length of the string being returned * @param suffix the suffix that should be added to the content if the string must be truncated, or null if the default suffix * of "..." should be used * @return the supplied string if no longer than the maximum length, or the supplied string truncated to be no longer than the * maximum length (including the suffix) * @throws IllegalArgumentException if the maximum length is negative */ public static String truncate(Object obj, int maxLength, String suffix) { if (obj == null || maxLength == 0) { return ""; } String str = obj.toString(); if (str.length() <= maxLength) return str; if (suffix == null) suffix = "..."; int maxNumChars = maxLength - suffix.length(); if (maxNumChars < 0) { // Then the max length is actually shorter than the suffix ... str = suffix.substring(0, maxLength); } else if (str.length() > maxNumChars) { str = str.substring(0, maxNumChars) + suffix; } return str; } }