Java-Beispiel
snake_case in Java zu camelCase konvertieren
Tokens an Unterstrichen trennen, mit Locale.ROOT normalisieren und alle Tokens nach dem ersten kapitalisieren.
Java-Code
import java.util.Locale;
static String snakeToCamel(String value) {
String cleaned = value.trim().replaceAll("^_+|_+$", "");
if (cleaned.isEmpty()) return "";
String[] parts = cleaned.split("_+");
StringBuilder result = new StringBuilder(parts[0].toLowerCase(Locale.ROOT));
for (int i = 1; i < parts.length; i++) {
String part = parts[i].toLowerCase(Locale.ROOT);
if (part.isEmpty()) continue;
result.append(Character.toUpperCase(part.charAt(0)));
result.append(part.substring(1));
}
return result.toString();
}
snakeToCamel("user_profile_image");
// "userProfileImage"Locale.ROOT verhindert, dass Identifier-Casing von der Benutzer-Locale des Systems abhängt.
StringBuilder verbindet Tokens effizient; gemischte Separatoren und Akronyme brauchen zusätzliche Regeln.
Zu beachtende Grenzfälle
- Akronym-Casing sollte der Codebase-Konvention folgen.
- Für Identifier-Normalisierung Locale.ROOT statt User-Locale verwenden.
- Rekursive JSON-Key-Konvertierung ist ein anderes Problem als ein einzelner String.
- Unterschiedliche Quellschlüssel können auf denselben camelCase-Key fallen und brauchen eine Konfliktregel.
Beispiel
| Vorher | Nachher |
|---|---|
| user_profile_image | userProfileImage |
| __user__profile__ | userProfile |
| api_response_url | apiResponseUrl |
| created_at | createdAt |
Java-Code
assert snakeToCamel("user_profile_image").equals("userProfileImage");
assert snakeToCamel("__user__profile__").equals("userProfile");
assert snakeToCamel("api_response_url").equals("apiResponseUrl");
assert snakeToCamel("created_at").equals("createdAt");Konvertierung online testen
Nutze den Browser-Converter für schnelle Tests, Batch-Werte, Akronyme und gemischte Namensformate.
Erkannt: snake_case
camelCase-Ausgabe
userProfileImageUrl
Alle Namensformate
camelCase
userProfileImageUrlPascalCase
UserProfileImageUrlsnake_case
user_profile_image_urlkebab-case
user-profile-image-urlCONSTANT_CASE
USER_PROFILE_IMAGE_URLdot.case
user.profile.image.urlpath/case
user/profile/image/urlDie Konvertierung findet lokal in deinem Browser statt. Die Eingabe wird nicht an einen Conversion-Server gesendet.