2013-04-25 2 views
2

Использование java, как заменить символ в строке ТОЛЬКО, когда он встречается синим?Замена символа в строке, когда она одна

например:
Заменить одного * с #

входной строкой:

a*b**c*d***e 

выходную строку:

a#b**c#d***e 

inputString.replaceAll("*", "#"); заменяет все *s и возвращает a#b##c#d###e

+0

Использовать inputString.replaceAll (correctRegex, "#") –

ответ

5

Вы можете использовать negative lookahead and lookbehind:

String s = "a*b**c*d***e"; 
String r = s.replaceAll("(?<!\\*)\\*(?!\\*)", "#"); // a#b**c#d***e 

Это читает: «символ * не предваряется символом *, а не последовало *» (обратите внимание на тот факт, что * должны быть экранированы в регулярном выражении, как это является метасимволом).

+0

его работая perfect.Thanks для этого выражения. –

+0

Отлично! благодаря! – user2318101

-1

Попробуйте использовать метод charAt (n), установив число n (параметр) в качестве числа * одиночных, а затем установите строку в «#» и посмотрите, помогает ли это.

+1

Этот ответ бесполезен. Вы не можете «установить» символ в String в Java. Строки Java неизменяемы. –

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