2012-01-07 5 views
0

У меня есть следующие строки в базе данныхКак я могу избежать повторения замены символа при замене подстрок

**final test project - test decorations** 

и я хочу, чтобы заменить пробелы на тире (- символов). Это то, что я до сих пор:

tit1 = rs.getString("title"); 
tit1 = tit1.replaceAll("\\s{1}", "-"); 

Выходы выглядит следующим образом

**final-test-project---test-decorations** 
    **shadow-of-the-test----test** 

, но я хочу, выход как этот

**final-test-project-test-decorations** 
    **shadow-of-the-test-test** 

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

ответ

5

Вы можете использовать следующую строку

tit1 = tit1.replaceAll("[\\s-]+", "-"); 

вместо вашего вызова replaceAll. Он берет все последовательные пробелы вместе с тире и заменяет их одним тире.

+0

но такой же результат я получаю то, что я упомянул 2-й, вы можете уточнить это .... – user1135693

+0

@ user1135693 Можете ли вы, пожалуйста, четко указать, что представляет собой вход и что вы ожидаете. Этот ответ соответствует точно тому, что вы укажете ниже «Я хочу, чтобы это было так». На самом деле я не понимаю, что вы подразумеваете под «игнорировать одиночную тире». – Howard

+0

Я получаю этот выход «тест-тест-тест-тест», но я хочу, чтобы сингл «shadow-of-the-test-test» - где когда-либо я могу получить ---, -, - - тире я хочу одного -. – user1135693

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