字符串 + 1 操作

需求

给定的字符串进行 +1 操作:

  • 该字符串可能全为数字 "000000"
  • 也可能有字符拼接(最后一部分为数字)"00sdf001"。要求整体长度不变的前提下,对最后的数字部分进行 +1 操作。
private String addOne(String snBillUse) {
    String[] strs = snBillUse.split("[^0-9]");
    // 默认最后一位为数字,获取最后一组数字
    String numStr = strs[strs.length - 1];
    if (numStr != null && numStr.length() > 0) {

        // 将字符串转为数字
        int i = Integer.valueOf(numStr) + 1;
        StringBuffer sb = new StringBuffer();
        String num = String.valueOf(i);
        //补全前面缺失的0
        for (int j = 0; j < numStr.length() - num.length(); j++) {
            sb.append("0");
        }
        // 位数保持不变,数字部分 + 1,
        if (num.length() <= numStr.length()) {
            sb.append(num);
        }else {
            // 位数操作原有位数,不进行 + 1 操作
            sb.append(numStr);
        }

        //拼接字符串
        return snBillUse.subSequence(0, snBillUse.length() - numStr.length()) + sb.toString();


    }
    return snBillUse;
}

参考博客

https://www.cnblogs.com/muhy/p/10953671.html
https://www.cnblogs.com/LT0314/p/3728609.html

posted @ 2021-12-09 09:33  平安QAQ  阅读(503)  评论(0编辑  收藏  举报