import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main{
public static void main(String[] args){
List<String> list=new ArrayList<>();
list.add("15000元/月");
list.add("15000~20000元/月");
list.add("15000");
list.add("一千五");
List<String> replace=new ArrayList<>();
list.forEach(f -> {
replace.add(numberFormat(f));
});
System.out.println(replace);
}
private static String numberFormat(String number){
if(number.equals("") || number.equals(null)){
return number;
}
String pattern="\\d+";
Pattern regex=Pattern.compile(pattern);
Matcher matcher=regex.matcher(number);
while(matcher.find()){
String match=matcher.group();
Double value=Double.valueOf(match);
NumberFormat format=NumberFormat.getInstance();
String f=format.format(value);
number=number.replace(match, f);
}
return number;
}
}
输出结果
增加千位分隔符并且保留两位小数
private String numberFormat(String number){
if(String2Utils.isBlank(number)){
return number;
}
String pattern = "\\d+";
Pattern regex = Pattern.compile(pattern);
Matcher matcher =regex.matcher(number);
while(matcher.find()){
String match = matcher.group();
Double value=Double.valueOf(match);
DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");
String f = decimalFormat.format(value);
number=number.replace(match, f);
}
return number;
}