Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java字符串中的大写字母替换下划线_Java - Fatal编程技术网

用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

我有一个字符串函数测试。我需要将这个字符串转换成字符串函数测试。如何使用java实现这一点

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"