/*
* Copyright (c) 2011 Nat Pryce, Timo Meinen.
*
* This file is part of Team Piazza.
*
* Team Piazza 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.
*
* Team Piazza 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/>.
*/
package com.natpryce.piazza;
import java.util.regex.Pattern;
public class Text {
public static final Pattern WORD_BOUNDARIES = Pattern.compile("\\s+|-");
public static String toTitleCase(String input) {
String[] words = WORD_BOUNDARIES.split(input);
StringBuilder result = new StringBuilder();
for (String word : words) {
if (word.length() > 0) {
if (result.length() > 0) {
result.append(" ");
}
String firstLetter = firstLetterToTitleCase(word);
result.append(firstLetter);
}
}
return result.toString();
}
private static String firstLetterToTitleCase(String word) {
for (int i = 0; i < word.length(); i++) {
if (Character.isLetter(word.charAt(i))) {
return word.substring(0, i) + Character.toTitleCase(word.charAt(i)) + word.substring(i + 1, word.length());
}
}
return word;
}
public static String withoutExtension(String string) {
int end = string.lastIndexOf('.');
if (end == -1) {
return string;
} else {
return string.substring(0, end);
}
}
}