2013-07-29 3 views
0

У меня есть строка some_text\1\12\3. Нужно получить строку some_text.1.12.3, т.е. е. заменить \ на .. Проблема в том, что Java интерпретирует \1 как один символ (escape-символ). И на самом деле мне нужно заменить часть escape-символа.Замена обратной косой черты другим символом в escape-символе

ответ

5

Это сделает работу:

str = str.replace('\\', '.'); 
10

Похоже, все, что вам не хватает является знание о том, как избежать обратной косой черты в строке Java буквального - что вопрос об удвоении обратной косой черты:

String replaced = original.replace('\\', '.'); 

с другой стороны, это не ясно, где текст исходит из или собирается в любом случае - \1 часть будет только быть уместным, если он обрабатывается как часть текста буквальным. Если вы на самом деле пытается создать строку "some_text\1\12\3" в Java исходного кода, чтобы начать с, вы хотите:

String withBackslashes = "some_text\\1\\12\\3"; 

Обратите внимание, что фактический текст строки, что withBackslashes относится только три обратной косой черты, не шесть. Это только исходный код, который нуждается в их удвоении. В этот момент код замены наверху заменит обратную косую черту точками.

+0

спасибо! – user2630355

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