java:对字符串最后一位加1,返回字符串,文件名累加
输入TEST001返回TEST002
@Test
public void getStringNumAdd(){
String test001 = DataFormatUtil.getStringNumAdd("TEST001", 3, 2);
System.out.println("123");
}
/**
* 字符串转数据,加上对应的数据,补0 返回
* @param oldString 原字符 test001
* @param numLength 补全长度 3
* @param addNum 增加个数 默认1
* @return test002
*/
public static String getStringNumAdd(String oldString, int numLength, int addNum){
//取出字符串后四位
String lastFourChars = oldString.substring(oldString.length() - numLength);
int num = Integer.parseInt(lastFourChars) + addNum;
String formattedString = String.format("%0" + numLength + "d", num);
String firstPart = oldString.substring(0, oldString.length() - numLength);
return firstPart + formattedString;
}
如果不需要补0 可以使用下面的方法
获取最后的数字 直接+1
/**
* 获取字符串的后一位 例如 CP1 => CP2 test789 => test790
* @param str
* @return
*/
private static String getNextName(String str){
Pattern pattern = Pattern.compile("(\\D+)(\\d+)");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
return matcher.group(1) + new BigDecimal(matcher.group(2)).add(new BigDecimal(1));
}else {
return null;
}
}