я хочу разделить мой java массив строк, когда несколько символов в моей строке - PullRequest
0 голосов
/ 03 апреля 2020

Я использовал функцию .split для выполнения задачи, но, как я заметил, когда рядом с моим массивом есть два специальных символа, заполненных пробелом, вот мой код

String strLine="cat dog man()home(String[welcome)throws , guess {";
String[] words = strLine.split("\\{+|\\(+|\\[+|\\]+|\\)+|\\,|\\s+");
int len=words.length;

for(int x=0;x<len;x++){
      System.out.println(words[x]);
}

результат, отображаемый как enter image description here

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

1 Ответ

1 голос
/ 03 апреля 2020

Поскольку вы хотите, чтобы соседние символы-разделители обрабатывались как один разделитель, просто объедините их в один класс символов.

\{+|\(+|\[+|\]+|\)+|\,|\s+     →     [{(\[\]),\s]+

Однако, поскольку у вас нет + на ,, похоже, что несколько запятых не следует рассматривать как один разделитель, поэтому нам нужно обрабатывать это по-разному.

Также кажется, что вы забыли }.

[{}()\[\]\s]*,[{}()\[\]\s]*|[{}()\[\]\s]+

Как Java литерал:

"[{}()\\[\\]\\s]*,[{}()\\[\\]\\s]*|[{}()\\[\\]\\s]+"
...