2016-03-15 47 views
1

替換值我有一個字符串這就像在一個字符串

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"); 

我的問題是,我無法預測數量將有多少數字是,我怎麼能正確地更換它,不管有多少的位數是什麼?

+1

http://www.tutorialspoint.com/java/java_regular_expressions.htm – SamTebbs33

回答

4

使用\\d+匹配一個或多個數字字符。

x[3].replaceAll("eed=\\d+ km","eed="+myVariable+" km"); 
1

你可以嘗試Pattern.quote

x[3].replaceAll(Pattern.quote("eed=\\d+ km","eed="+myVariable+" km")); 
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 
    } 

希望你發現我的代碼有幫助。

3

另一種選擇是使用字符串:

String newSpeed = x[3].substring(0,8)+myVariable+" km"; 
+0

的字符串是更大,比這個例子更隨機的,這就是爲什麼我需要使用更換 – fx86f