Метод String replaceAll (Java)

У меня есть следующая проблема:

код:

String a="Yeahh, I have no a idea what happening now!";
System.out.println(a);
a=a.replaceAll("a", "");
System.out.println(a);

Перед удалением 'a', результат:

Да, я понятия не имею, что происходит сейчас!

Фактический результат: После удаления "a" результат:

Yehh, я не вижу, что сейчас происходит!

Желаемый результат:

Да, я понятия не имею, что происходит сейчас!

Кто-нибудь может дать мне несколько советов для достижения желаемого результата?

5 ответов

a = a.replace(" a ", " ");

Вам не нужен метод replaceAll(..) - это если вы хотите использовать регулярное выражение, и вам это не нужно, по крайней мере для этого примера.

Если вам нужно это для более сложных примеров, чем показано, используйте replaceAll(..) и посмотрите java.util.regex.Pattern. Например, сопоставление всех пробельных символов выполняется с помощью \s


вы должны определить конкретный "a" для удаления попробуйте a.replace(" a ", " ");


Вы просили заменить все "a", и это то, что вы получили.

Некоторые решения:

  • replaceAll ( "a", "") (обратите внимание на пробелы вокруг 'a')
  • используйте regex для chek для 'a', окруженного барьерами слов (\ b, если я не ошибаюсь)


Попробуйте использовать это:

String str = "Да, я понятия не имею, что происходит сейчас!";

String newStr = str.replaceAll( "a", "");


a.replace("Yeahh", "Yehh");

Это просто замена а в Да? или первый a в строке?

licensed under cc by-sa 3.0 with attribution.