2016-03-15 3 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

Смежные вопросы