StringUtils.camelize(String);

2 Kommentare

Heute musste ich feststellen, daß in den Apache Commons zwar viel drin ist aber keine Funktion zum CamelCasen von Strings.

Da ich aus XML Namen im Format MY_TINY_PROPERTY gerne den Java Propertynamen myTinyProperty haben wollte, musste ich mir selbst behelfen.

private String toCamelCase(String value, boolean startWithLowerCase) {
	String[] strings = StringUtils.split(value.toLowerCase(), "_");
	for (int i = startWithLowerCase ? 1 : 0; i < strings.length; i++){
		strings[i] = StringUtils.capitalize(strings[i]);
	}
	return StringUtils.join(strings);
}

Dieser Helper deckt den Großteil der vorstellbaren Anforderungen ab. Zumindest meine komplett. Alternativ könnte man auch WordUtils#capitalizeFully() verwenden und das Ergebnis noch transformieren.

Der Weg zurück ist noch etwas unschöner, da die Trennzeichen für split() nicht so einfach zu bestimmen sind. In vielen anderen Programmiersprachen findet sich so eine Funktion sogar in den Kernbibliotheken, warum hat Java oder Apache Commons das noch nicht? Patch?

Fabian Lange ist Lead Agent Engineer bei Instana und bei der codecentric als Performance Geek bekannt. Er baut leidenschaftlich gerne schnelle Software und hilft anderen dabei, das Gleiche zu tun.
Er kennt die Java Virtual Machine bis in die letzte Ecke und beherrscht verschiedenste Tools, die JVM, den JIT oder den GC zu verstehen.
Er ist beliebter Vortragender auf zahlreichen Konferenzen und wurde unter anderem mit dem JavaOne Rockstar Award ausgezeichnet.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentare

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.