用java字符串中的大写字母替换下划线
我有一个字符串函数测试。我需要将这个字符串转换成字符串函数测试。如何使用java实现这一点用java字符串中的大写字母替换下划线,java,Java,我有一个字符串函数测试。我需要将这个字符串转换成字符串函数测试。如何使用java实现这一点 public static String camelcasify(String in) { StringBuilder sb = new StringBuilder(); boolean capitalizeNext = false; for (char c : in.toCharArray()) { if (c == '_') { capi
public static String camelcasify(String in) {
StringBuilder sb = new StringBuilder();
boolean capitalizeNext = false;
for (char c : in.toCharArray()) {
if (c == '_') {
capitalizeNext = true;
} else {
if (capitalizeNext) {
sb.append(Character.toUpperCase(c));
capitalizeNext = false;
} else {
sb.append(c);
}
}
}
return sb.toString();
}
这是一个基本的方法。缺少的内容:对格式错误字符串的一些特殊处理(如有必要)stringbuffers=newstringbuffer(“skasd_kjsdh_kas_jd”);
对于(int i=0;i使用:
这不是“给我一个密码”站点。您必须展示自己的一些努力。请阅读和了解详细信息。我已经找到了这个问题的解决方案,当问题本身关闭时,我应该如何发布答案?deleteCharAt
听起来很有希望,但请记住,它必须在每次调用时复制缓冲区的一部分。rea和dability and performance.Hmmm…System.arraycopy为每个deleteCharacter。相反,我认为我可以用下一个字符的大写版本替换下划线和nextCharacter…如果我们用一个字符替换两个字符,我们必须再次收缩缓冲区,这也将执行一些内部复制操作。StringBuffer
internal uses一个数组..是的..+1到你的答案..根据需要创建一个单独的字符串是有意义的..我会创建一个新字符串,而不是试图操纵输入字符串本身。。。
StringBuffer s = new StringBuffer("skasd_kjsdh_kas_jd");
for(int i=0;i<s.length();i++)
{
if(s.charAt(i)=='_')
{
s.setCharAt(i,Character.toUpperCase(s.charAt(i+1)));
s.deleteCharAt(i+1);
}
}
System.out.println(s);
CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "string_function_test");
// returns "stringFunctionTest"