Here you can find the source of capitalize(String line)
public static String capitalize(String line)
//package com.java2s; /******************************************************************************* * Copyright (c) 2009 Andrey Loskutov.//from w ww. j av a 2 s .c o m * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * Contributor: Andrey Loskutov - initial API and implementation *******************************************************************************/ public class Main { public static String capitalize(String line) { StringBuffer sb = new StringBuffer(line); int size = line.length(); boolean changed = false; char c; int lastWordIdx = 0; for (int i = 0; i < size; i++) { i = indexOfNextWord(line, i, lastWordIdx); if (i < 0) { break; } c = line.charAt(i); if (Character.isLowerCase(c)) { c = Character.toUpperCase(c); sb.setCharAt(i, c); changed = true; } lastWordIdx = i; } if (changed) { return new String(sb); } return line; } /** * get index of first non-whitespace letter (one of " \t\r\n") * @return -1 if no such (non-whitespace) character found from given * startOffset (inclusive) */ private static int indexOfNextWord(String line, int startOffset, int lastIdx) { int size = line.length(); char c; boolean continueSequence = lastIdx + 1 == startOffset; for (int i = startOffset; i < size; i++) { c = line.charAt(i); if (Character.isWhitespace(c)) { continueSequence = false; continue; } else if (continueSequence) { continue; } return i; } return -1; } }