替换字符串

时间:2016-03-15 12:18:23

标签: java regex string wildcard

我有一个类似

的字符串列表
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");  

我的问题是,我无法预测该数字的位数,无论数字位数多少,我该怎样才能正确更换?

4 个答案:

答案 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
  }

希望您发现我的代码有用。