2013-10-05 3 views
0

Без replaceall Выход: [3, 2, 1]Строка replaceAll несколько символов

С replaceall Выход: 3,2,1

есть в любом случае делать это с помощью метода одного replaceAll, что-то вроде

 set.toString().replaceAll("\\[\\]\\s+",""); 

Теперь Код

 Set<String> set = new HashSet<String>();  
     set.add("1"); 
     set.add("2"); 
     set.add("3"); 
     System.out.println(set.toString().replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\s+", "")); 

ответ

2

Как об использовании Guava's Joiner:

String joined = Joiner.on(",").join(set); 
System.out.println(joined); // 1,2,3 

Или, если вы не можете использовать любую библиотеку 3rd партии, то следующий replaceAll будет работать:

System.out.println(set.toString().replaceAll("[\\[\\]]|(?<=,)\\s+", "")); // 1,2,3 

Ну, вы не получите всегда тот же вывод, что и HashSet, не сохраняет порядок вставки. Если вы этого хотите, используйте LinkedHashSet.

+0

Я знал, что это Jain вещь хочу для как заменить несколько регулярных выражений с одного заменить весь метод, GOT IT Вы. – sunleo

+0

@sunleo. Вы всегда можете объединить несколько регулярных выражений с помощью чередования - '|'. –

+0

благодарим вас за глубокую и дополнительную информацию. – sunleo

1

Как насчет usi Это регулярное выражение, [\\[\\]].

System.out.println(set.toString().replaceAll("[\\[\\]]", "")); // Output is 3,2,1 

Если вы хотите удалить пробельные также, а затем использовать это регулярное выражение, [\\[\\]\\s] (но запятая будет там).

0

replaceAll("[^\\d|,]", ""); заменит все, что не является цифрой (\\d) или (|) запятая (,). Символ шляпы ^ означает, что не в Java regex, а квадратные скобки [] обозначают набор. Таким образом, наш набор «все, что не является цифрой или запятой».

Set<String> set = new HashSet<String>(); 
set.add("1"); 
set.add("2"); 
set.add("3"); 
System.out.println(set.toString().replaceAll("[^\\d|,]", "")); 

Выход:

3,2,1

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