对字符串中数字的变换操作
有时候我们会遇到需要对字符串中的数字进行变换的操作类似于这种
String numStr ="age>=10 and age < 12";
需要变换为
String numStr ="age >= 9 and age < 11";
其解决思想就是把字符串分割为字符数组,进行遍历,如下:
public String reduceOne(String originStr){
String[] strArray = originStr.split("");
Set<Integer> list = new HashSet<>();
StringBuilder number = new StringBuilder();
for (String string : strArray) {
if(!StringUtils.isBlank(string)){
if(StringUtils.isNumeric(string)){
number.append(string);
}else {
if (!StringUtils.isEmpty(number)) {
list.add(Integer.parseInt(number.toString()));
number = new StringBuilder();
}
}
}
}
//字符串结尾为数字上边会直接跳过的 所以这里再添加一下
if(!StringUtils.isEmpty(number)) {
list.add(Integer.parseInt(number.toString()));
}
for(Integer s : list){
originStr = originStr.replace(String.valueOf(s), String.valueOf(s-1));
}
return originStr;
}
一个工具方法,作为以后方便使用。
不同需求按照一样的思想改造代码块即可。