Exemple Java
Convertir snake_case en camelCase en Java
Découpez les tokens par underscore, normalisez avec Locale.ROOT et capitalisez tous les tokens après le premier.
Code Java
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 évite que la casse des identifiants dépende de la locale utilisateur de la machine.
StringBuilder assemble efficacement les tokens ; les séparateurs mixtes et acronymes demandent des règles plus larges.
Cas limites à considérer
- La casse des acronymes doit suivre la politique du codebase.
- Utilisez Locale.ROOT pour les identifiants plutôt que la locale utilisateur.
- La conversion récursive des clés JSON est distincte de celle d’une chaîne.
- Des clés différentes peuvent se normaliser vers la même clé et nécessitent une politique de conflit.
Exemple
| Avant | Après |
|---|---|
| user_profile_image | userProfileImage |
| __user__profile__ | userProfile |
| api_response_url | apiResponseUrl |
| created_at | createdAt |
Code Java
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");Tester la conversion en ligne
Utilisez le convertisseur pour les vérifications rapides, les lots, les acronymes ou les entrées qui mélangent plusieurs conventions.
Détecté : snake_case
Sortie camelCase
userProfileImageUrl
Tous les formats de nommage
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/urlLa conversion s’effectue localement dans votre navigateur. Votre entrée n’est pas envoyée à un serveur de conversion.