Android examples for java.lang:String Case
Uncapitalizes all the whitespace separated words in a String.
/******************************************************************************* * Copyright (c) 2011 MadRobot./*ww w .j a v a2 s .c om*/ * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * Elton Kent - initial API and implementation ******************************************************************************/ //package com.java2s; public class Main { /** * <p> * Uncapitalizes all the whitespace separated words in a String. Only the * first letter of each word is changed. * </p> * * <p> * Whitespace is defined by {@link Character#isWhitespace(char)}. A * <code>null</code> input String returns <code>null</code>. * </p> * * <pre> * WordUtils.uncapitalize(null) = null * WordUtils.uncapitalize("") = "" * WordUtils.uncapitalize("I Am FINE") = "i am fINE" * </pre> * * @param str * the String to uncapitalize, may be null * @return uncapitalized String, <code>null</code> if null String input * @see #capitalize(String) */ public static String uncapitalize(String str) { return uncapitalize(str, null); } /** * <p> * Uncapitalizes all the whitespace separated words in a String. Only the * first letter of each word is changed. * </p> * * <p> * The delimiters represent a set of characters understood to separate * words. The first string character and the first non-delimiter character * after a delimiter will be uncapitalized. * </p> * * <p> * Whitespace is defined by {@link Character#isWhitespace(char)}. A * <code>null</code> input String returns <code>null</code>. * </p> * * <pre> * WordUtils.uncapitalize(null, *) = null * WordUtils.uncapitalize("", *) = "" * WordUtils.uncapitalize(*, null) = * * WordUtils.uncapitalize(*, new char[0]) = * * WordUtils.uncapitalize("I AM.FINE", {'.'}) = "i AM.fINE" * </pre> * * @param str * the String to uncapitalize, may be null * @param delimiters * set of characters to determine uncapitalization, null means * whitespace * @return uncapitalized String, <code>null</code> if null String input * @see #capitalize(String) * @since 2.1 */ public static String uncapitalize(String str, char... delimiters) { int delimLen = (delimiters == null ? -1 : delimiters.length); if (str == null || str.length() == 0 || delimLen == 0) { return str; } int strLen = str.length(); StringBuilder buffer = new StringBuilder(strLen); boolean uncapitalizeNext = true; for (int i = 0; i < strLen; i++) { char ch = str.charAt(i); if (isDelimiter(ch, delimiters)) { buffer.append(ch); uncapitalizeNext = true; } else if (uncapitalizeNext) { buffer.append(Character.toLowerCase(ch)); uncapitalizeNext = false; } else { buffer.append(ch); } } return buffer.toString(); } /** * Is the character a delimiter. * * @param ch * the character to check * @param delimiters * the delimiters * @return true if it is a delimiter */ private static boolean isDelimiter(char ch, char[] delimiters) { if (delimiters == null) { return Character.isWhitespace(ch); } for (int i = 0, isize = delimiters.length; i < isize; i++) { if (ch == delimiters[i]) { return true; } } return false; } }