字符串 + 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