2016-03-14 2 views
-2

Мне нужно заменить текст между рисунком. Вот эта функция:Заменить текст между рисунком

public String replace(String text) { 
    String text = "My name is %NAME%."; 
    String pattern = "%NAME%"; 
    String textReplaced = ""; 
    "Here comes the code" 
    return textReplaced; 
} 

Результат выполнения функции replace ("Darius"); должен быть такой строкой: «Меня зовут Дарий».

Я не могу использовать заменить() или replaceFirst(), это состояние.

Каков наилучший способ выполнения этой реализации?

+1

почему вы не можете использовать 'replace'? – Reimeus

+4

'replace' не использует регулярное выражение. –

+0

'replace()' не использует Regex, а 'replaceAll()' делает. – user2004685

ответ

2

Я не могу использовать замену регулярного выражения. Я не знаю, почему вы так думаете, но можете просто сделать это, используя replace().

Вот фрагмент кода:

public String replace(String text) { 
    String text = "My name is %NAME%."; 
    String pattern = "%NAME%"; 
    String textReplaced = "Darius"; 

    String result = text.replace(pattern, textReplaced); 
    System.out.println(result); 
    return result; 
} 

Выход:

My name is Darius. 

В качестве альтернативы, если вы не хотите использовать replace(), то вы можете также сделать следующее:

public String replace(String text) { 
    String text = "My name is %NAME%."; 
    String pattern = "%NAME%"; 
    String textReplaced = "Darius"; 

    String[] result = text.split(" "); 
    StringBuilder sb = new StringBuilder(); 
    for(int i = 0; i < result.length; i++) { 
     sb.append(result[i].contains(pattern) ? textReplaced + " " : result[i] + " "); 
    } 

    return sb.toString(); 
} 
+0

Не хотите возвращать результат '? –

+0

@ Энди Извините, мой плохой! :) – user2004685

+0

@MarioNavarroClaras Проверьте обновленное решение. – user2004685

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