java case-sensitive

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);



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