java - Necesidad de cambiar la cadena de minúsculas y minúsculas a camelCase
case-sensitive (8)
Otra solución es utilizar StringTokenizer:
String value = "id_app";
StringTokenizer toekn = new StringTokenizer(value,"_");
StringBuilder str = new StringBuilder(toekn.nextToken());
while (toekn.hasMoreTokens()) {
String s = toekn.nextToken();
str.append(Character.toUpperCase(s.charAt(0))).append(s.substring(1));
}
System.out.println(str.toString());
Necesito cambiar Cadena: barra inferior + minúscula = mayúscula . (Y lo contrario)
my_name -> myName
¿Hay alguna biblioteca o algo para ayudar a esto?
Puede reemplazar los caracteres en minúsculas después de subrayar con mayúsculas usando appendReplacement
Los métodos appendReplacement y appendTail se pueden usar en tándem para recopilar el resultado en un búfer de cadena existente
String text = "my_name_is";
Matcher m = Pattern.compile("([_][a-z])").matcher(text);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, m.group().substring(1).toUpperCase());
}
m.appendTail(sb);
Puede utilizar CaseFormat
clase LOWER_UNDERSCORE
desde google Guava :
CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "my_name")
Revisa este código, lo he verificado.
String str = new String("my_name");
for(int i=0;i<str.length()-1;i++){
if(str.charAt(i)==''_'' && (int) str.charAt(i+1)>=97 && (int) str.charAt(i+1)<=122){
str=str.replace(str.substring(i, i+2),""+(char)((int) str.charAt(i+1)-32));
}
}
System.out.println(str);
Sugiero una solución personalizada
Pattern p = Pattern.compile("_(.)");
Matcher m = p.matcher("my_name");
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, m.group(1).toUpperCase());
}
m.appendTail(sb);
System.out.println(sb.toString());
salida
myName
CaseFormat
es una clase de utilidad en Google Guava para convertir entre convenciones de casos.
String s="My_name";
int i=s.indexOf(''_'');
s=s.replaceFirst(Character.toString(s.charAt(i+1)),Character.toString(Character.toUpperCase(s.charAt(i+1))));
s=s.replaceAll("_","");
String s="srinivas";
s=s.replaceFirst(Character.toString(s.charAt(0)),
Character.toString(Character.toUpperCase(s.charAt(0))));
//s Value is "Srinivas" now