Строка replaceAll метод (Java) - PullRequest
3 голосов
/ 22 марта 2010

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

Код:

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

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

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

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

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

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

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

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

Ответы [ 5 ]

8 голосов
/ 22 марта 2010
a = a.replace(" a ", " ");

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

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

2 голосов
/ 22 марта 2010

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

1 голос
/ 22 марта 2010

Вы просили заменить каждое «а», и это то, что вы получили.

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

  • replaceAll («a», «») (обратите внимание напробелы вокруг 'a')
  • используйте регулярное выражение для проверки 'a' в окружении барьеров для слов (\ b, если я не ошибаюсь)
0 голосов
/ 03 мая 2016

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

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

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

0 голосов
/ 22 марта 2010
a.replace("Yeahh", "Yehh");

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...