最近用到的String的方法

最近用到的关于一个字符串拼写的总结

        String hql = "select * from TableA as ta where ta.id =1 group by ta.id order by ta.id desc";

 

        int firstBlank = hql.indexOf(" ") ;                  //查找str第一个blank的下标位置,从0计算;结果6


        int i = hql.toUpperCase().indexOf("FROM") ;//转换成大写(hql不变),其中第一个“FROM”的下标...;


        String subHql = hql.substring(i) ;                 //从下标 i 开始的子字符串,"from X as x ......"


        String[] ss = subHql.split(" ") ;                     //以“ ”(空格)为分割标志分割字符串,其结果为字符串数组


        String entityStr = ss[3];


        if(entityStr.indexOf(",") >= 0){
            entityStr = entityStr.split(",")[0];
        }
       
        StringBuffer countHqlBuffer =
            new StringBuffer(hql.substring(0, firstBlank+1))
                .append("count(distinct ")
                .append(entityStr)
                .append(".id")
                .append(") ");

        if (groupbyIndex == -1)
            countHqlBuffer.append(subHql);
        else
            countHqlBuffer.append(subHql.substring(0, groupbyIndex-1) );//取字符串下标从0开始到groupbyIndex-1(包含) 之间的生成新的字符串

 

 

得到的结果是:countHqlBuffer = "select count(distinct ta.id) from TableA as ta where ta.id = 1 ";

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值