替换字符串中的值
Replace a value in a string
我有一个字符串列表,类似于
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");
我的问题是我无法预测这个数字是多少位,无论这个数字是多少位我如何正确替换它?
使用\d+
匹配一个或多个数字字符。
x[3].replaceAll("eed=\d+ km","eed="+myVariable+" km");
你可以试试Pattern.quote
x[3].replaceAll( Pattern.quote("eed=\d+ km","eed="+myVariable+" km"));
这将更改数组中的每个字符串。
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
}
希望我的代码对您有所帮助。
另一个选项是使用子串:
String newSpeed = x[3].substring(0,8)+myVariable+" km";
我有一个字符串列表,类似于
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");
我的问题是我无法预测这个数字是多少位,无论这个数字是多少位我如何正确替换它?
使用\d+
匹配一个或多个数字字符。
x[3].replaceAll("eed=\d+ km","eed="+myVariable+" km");
你可以试试Pattern.quote
x[3].replaceAll( Pattern.quote("eed=\d+ km","eed="+myVariable+" km"));
这将更改数组中的每个字符串。
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
}
希望我的代码对您有所帮助。
另一个选项是使用子串:
String newSpeed = x[3].substring(0,8)+myVariable+" km";