Zakładając można użyć Java 8, oto sposób funkcjonalny, że nikt nie poprosił o ...
import java.util.Optional;
import java.util.stream.IntStream;
public class StringHelper {
public static String capitalize(String source) {
return Optional.ofNullable(source)
.map(str -> IntStream.concat(
str.codePoints().limit(1).map(Character::toUpperCase),
str.codePoints().skip(1)))
.map(stream -> stream.toArray())
.map(arr -> new String(arr, 0, arr.length))
.orElse(null);
}
}
Jest to elegancki, że obsługuje NULL i pustych przypadków ciągów bez żadnych instrukcji warunkowych.
[StringUtils.capitalize()] (http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html#capitalize%28java.lang .String% 29)? Poszukiwanie elegancji w Javie jest ... cóż, są lepsze zwroty z inwestycji. Biblioteki użytkowe istnieją z jakiegoś powodu. –
Czy musisz wziąć pod uwagę lokalizację? Każde ustawienie narodowe ma inne reguły dotyczące zmiany wielkości liter. – erickson
@erickson Nie ma potrzeby. Angielski jest dla mnie wystarczający. –