Here you can find the source of capitalize(String str)
Capitalizes all the whitespace separated words in a String.
Parameter | Description |
---|---|
str | the String to capitalize, may be null |
null
if null String input
public static String capitalize(String str)
//package com.java2s; /*/*from ww w .j a v a 2s.com*/ * Copyright 2002-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public class Main { /** * <p>Capitalizes all the whitespace separated words in a String. * Only the first letter of each word is changed. To change all letters to * the capitalized case, use {@link #capitalizeFully(String)}.</p> * * <p>Whitespace is defined by {@link Character#isWhitespace(char)}. * A <code>null</code> input String returns <code>null</code>. * Capitalization uses the unicode title case, normally equivalent to * upper case.</p> * * <pre> * WordUtils.capitalize(null) = null * WordUtils.capitalize("") = "" * WordUtils.capitalize("i am FINE") = "I Am FINE" * </pre> * * @param str the String to capitalize, may be null * @return capitalized String, <code>null</code> if null String input * @see #uncapitalize(String) * @see #capitalizeFully(String) */ public static String capitalize(String str) { return capitalize(str, null); } /** * <p>Capitalizes all the delimiter separated words in a String. * Only the first letter of each word is changed. To change all letters to * the capitalized case, use {@link #capitalizeFully(String)}.</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 capitalized. </p> * * <p>A <code>null</code> input String returns <code>null</code>. * Capitalization uses the unicode title case, normally equivalent to * upper case.</p> * * <pre> * WordUtils.capitalize(null) = null * WordUtils.capitalize("") = "" * WordUtils.capitalize("i am FINE") = "I Am FINE" * </pre> * * @param str the String to capitalize, may be null * @param delimiters set of characters to determine capitalization * @return capitalized String, <code>null</code> if null String input * @see #uncapitalize(String) * @see #capitalizeFully(String) */ public static String capitalize(String str, char[] delimiters) { if (str == null || str.length() == 0) { return str; } int strLen = str.length(); StringBuffer buffer = new StringBuffer(strLen); int delimitersLen = 0; if (delimiters != null) { delimitersLen = delimiters.length; } boolean capitalizeNext = true; for (int i = 0; i < strLen; i++) { char ch = str.charAt(i); boolean isDelimiter = false; if (delimiters == null) { isDelimiter = Character.isWhitespace(ch); } else { for (int j = 0; j < delimitersLen; j++) { if (ch == delimiters[j]) { isDelimiter = true; break; } } } if (isDelimiter) { buffer.append(ch); capitalizeNext = true; } else if (capitalizeNext) { buffer.append(Character.toTitleCase(ch)); capitalizeNext = false; } else { buffer.append(ch); } } return buffer.toString(); } }