public String getObjectNameFromTable(String tableName){
int index=tableName.indexOf("_");

String str1=tableName.substring(0,1).toUpperCase()+tableName.substring(1,index);
String str2=tableName.substring(index+1).substring(0,1).toUpperCase();
String str3=str1+str2+tableName.substring(index+2);
System.out.println("str3:"+str3);
if(-1!=str3.indexOf("_")){
getObjectNameFromTable(str3);
}
return str3;
}

String returnStr=new T().getObjectNameFromTable("web_web_apply");
System.out.println(returnStr);
// str3:WebWeb_apply
// str3:WebWebApply
// WebWeb_apply我想传递一个字符串,然后把字符串里面的"_"字符去掉,并且第一个字母大写,然后返回结果.
但是我执行方法之后再最后一次打印str3就是想要的结果,但是方法返回值确不是...求助!

解决方案 »

  1.   


    public static String getObjectNameFromTable(String tableName) {
    tableName = tableName.replaceAll("_", "");
    if (tableName.length() > 1) {
    tableName = tableName.substring(0, 1).toUpperCase()
    + tableName.substring(1);
    } else {
    tableName = tableName.toUpperCase();
    }
    return tableName;
    }
      

  2.   

    1楼可能没有明白我的意思,传递一个web_web_apply,要返回WebWebApply这样的.
      

  3.   


    public static String getObjectNameFromTable(String tableName) {
    String[] array = tableName.split("_"); StringBuilder sb = new StringBuilder();
    for(String str : array){
    sb.append(upperCase(str));
    }
    return sb.toString();
    } public static String upperCase(String str) {
    if (str.length() > 1) {
    str = str.substring(0, 1).toUpperCase() + str.substring(1);
    }
    return str;
    }
      

  4.   

    3楼正解
    String[] array = tableName.split("_");是将字符串安"_"分开 放入String数组
    sb.append(upperCase(str));将数组字符串拼接起来
      

  5.   

    tableName.split("_");
    这样分隔比较好。
      

  6.   

    over,原来一切都是这么容易.谢谢3楼!
      

  7.   

    index,只是找到第一个“_”的下标,所以很明显你的已经不对了然后。。3楼那    public static String upperCase(String str) {
            if (str.length() > 1) {
                str = str.substring(0, 1).toUpperCase() + str.substring(1);
            }
            return str.toUpperCase();// 这样才是,漏写了。。
        }