需求:将传入的字符串中,大写英文字母,例如‘CF’替换为计算后的数值结果
思路:利用%s占位符快速实现内容替换
将原字符串更改为
我曾经有%s个手机,其中%s个是安卓系统,%s个是ios系统。
将此字符串转入方法内
/**
* 将传入的字符串按照规则截取%s(占位符),利用STRING.format得到想要的数值值
*
* @param value 需要处理的值
* @param
*/
public static String replaceStar(String value, int counts, double avg) {
String result = "";
//判断字符串是否以大写字母结尾
if (value.matches(".*[A-Z][A-Z]$")) {
String r = value;
//如果以大写字母结尾返回,大写字母之前的字
r = r.replaceFirst(".[A-Z]$", "");
//将传入值替换到字符串的占位符上
String s = String.format(r, counts);
result = result.concat(s);
} else if (value.matches(".*[A-Z]*")) {
//不是以大写字母结尾的字符串
Pattern p = Pattern.compile("[A-Z]");
Matcher matcher = p.matcher(value);
//将字符串中的大写字母截取掉
String s = matcher.replaceAll("");
//将传入值替换到字符串的占位符上
String r = String.format(s, counts, avg);
result = result.concat(r);
}
return result + ";";
}
最终效果
我曾经有5个手机,其中2个是安卓系统,1个是ios系统。