我有一个类似
的字符串列表x[0]="My speed=300 km/h";
x[1]="My speed=0 km/h";
x[3]="My speed=25 km/h";
我希望每一行用我的一个变量替换速度(300,0 ....)。
直到现在我正在使用这样的通配符
String newSpeed= x[3].replaceAll("eed=.. km","eed="+myVariable+" km");
我的问题是,我无法预测该数字的位数,无论数字位数多少,我该怎样才能正确更换?
答案 0 :(得分:4)
使用\\d+
匹配一个或多个数字字符。
x[3].replaceAll("eed=\\d+ km","eed="+myVariable+" km");
答案 1 :(得分:3)
另一个选择是使用子字符串:
String newSpeed = x[3].substring(0,8)+myVariable+" km";
答案 2 :(得分:1)
你可以试试Pattern.quote
x[3].replaceAll( Pattern.quote("eed=\\d+ km","eed="+myVariable+" km"));
答案 3 :(得分:0)
这将更改数组中的每个字符串。
for(int i = 0; i < x.length; i++)
{
x[i].replaceAll("eed=\\d+ km","eed="+myVariable+" km");
// d matches [0-9] and other digit characters + to multiple digits
}
希望您发现我的代码有用。