2015-07-17 2 views
-2

Я хочу, чтобы разбить строку на следующие символыРазбивает строка против некоторых символов, кроме символа #

[email protected]$%^&*()_+­=<>,.?/:;"'{}|[]\, \n,\t, space

Я пытался использовать \\s регулярки разделителя, но я не хочу, чтобы # включенных в расколе чтобы строка, такая как this is #funny, должна приводить к is#funny в качестве итоговых значений.

Я пробовал следующее, но он не работает.

this is #funny".split("\\s")

, но он не работает. Есть идеи?

+0

Как насчет '' это #funny '.split ("\\ s | #") '? –

+1

Привет, добро пожаловать в stackoverflow. Мы, как правило, очень рады помочь, но вы должны помочь нам в этом. Вы захотите опубликовать некоторый код, показывающий проблему, и то, что вы подразумеваете под «не работает». – CPerkins

+1

'\\ s' предназначен только для пробелов. Как это соответствует вашему требованию ко всем другим персонажам? –

ответ

1

Просто укажите нужные символы в квадратных скобках, что означает любой из. Одноместный побег Java символов (например, \") и двойной побег Regex специальные символы (например, \\[):

@Test 
public void testName() throws Exception 
{ 
    String[] split = "this is #funny".split("[[email protected]$%^&*()_+­=<>,.?/:;\"'{}|\\[\\]\\\\ \\n\\t]"); 
    for (String string : split) 
    { 
     logger.debug(string); 
    } 
} 
0

replaceAll пользователя (String регулярных выражений, замена String) метод из строки.

String result = "this is #funny".replaceAll("[[email protected]$%^&*()_+­=<>,.?/:;\"'{}|\\[\\]\\,\\n\\t]", ""); 
System.out.println(result); 
0

Это выглядеть, как это будет работать для вас:

String[] split = str.split("[^a-zA-Z&&[^#]]+"); 

Это использует класс символов вычитание разделить на небуквенный символов, за исключением хэш.


Вот некоторые тестовый код:

String str = "this is #funny"; 
String[] split = str.split("[^a-zA-Z&&[^#]]+"); 
System.out.println(Arrays.toString(split)); 

Выход:

[this, is, #funny] 
0

Вы можете попробовать это реализовать:

String[] split = "this&is%a#funny^string".split("[^#\\p{Alnum}]|\\s+"); 
for (String string : split){ 
    System.out.println(string); 
} 

Также проверьте Java API (Patterns) для получения дополнительной информации о как обрабатывать строки.

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