2017-01-27 3 views
3

Я просто хотел, чтобы заменить последовательность символа «\» (т.е. последовательный как \\\) к одной «\» в Java. Если возможно, я не хочу перебирать все для цикла. Есть ли что-нибудь возможное с регулярным выражением для поиска и замены? Потому что в моем случае я получаю много ввода, как это, если пользователь дал в приложении каждый раз, когда я должен проверять и заменять все символы \.Как заменить символ в Java

Может ли кто-нибудь помочь мне в этом контексте.

входа: \\\\ Program Files \\ Microsoft Игра \\\\\ Шахматы \\\ Chess.exe

выход, который я ожидаю: \ Program Files \ Microsoft Games \ шахматы \ Chess.exe

+0

Допустит, имя переменной части строки 'str' затем сделать следующий' str.replace ("\\\\\\", "\\"); ' – SteelToe

+1

Ваших вход выглядит странно. Есть ли у вашего входа 3 обратные косые черты? –

+0

@SteelToe Я не могу предсказать, что пользователь даст \\\\\\ (т. Е. Всего 6 \ в одиночку). Я должен изменить, если пользователь даст даже 10 общее число обратных косых черт. –

ответ

5
static String replaceConsecutiveBackslash(String input) { 
    return input.replaceAll("\\\\{2,}", "\\\\"); 
} 
+0

Спасибо @shmosel, что он работает. –

+0

@shmosel Почему бы не использовать квантор +? – SteelToe

+0

@SteelToe '+' соответствует 1 или более. Нам нужно иметь дело только с 2 или более. – shmosel