игнорировать точку на расколе \\ w + - PullRequest
0 голосов
/ 03 мая 2019

ОК, так что я не знаю, был ли уже получен ответ, и это может быть довольно легко, но я застрял на этом, у меня есть отформатированная строка, которая содержит информацию об игроках, это выглядит так

<Lindstrom195, zillah, 13, Oacoma699, Maxville505, Mazie999, Pawnee966>

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

String s = "<Lindstrom195, zillah, 13, Oacoma699, Maxville505, Mazie999, Pawnee966>";
String[] words;

words = s.split("\\W+");

все будет хорошо, пока я не получу от этого игрока

<S.N.P.J.972, theodore, 44, Roscoe515, Okolona536, Sixes960>

тот факт, что он получает точку вего псевдоним заставляет мой метод терпеть неудачу, поэтому, как можно использовать split с \ w +, но игнорировать точки?

Я пробовал этот путь, но он не удался

String s = "<Lindstrom195, zillah, 13, Oacoma699, Maxville505, Mazie999, Pawnee966>";
String[] words;

words = s.split("<|,|>|\\s+");
\\ it fail because it put empty element in my String[]

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Чтобы игнорировать разбиение на регулярные выражения, сделайте следующее:

    s=s.substring(1,s.length()-1);
    String[] words;
    words=s.split(",\\s");
0 голосов
/ 03 мая 2019

Таким образом, \ W означает любой несловесный символ, но вы хотите разделить его на любой несловесный символ, кроме '.', Поэтому синтаксис для этого:

words = s.split("[\\W&&[^.]]+");

Как и в случае с исходным ответом, это приведет к пустому первому элементу из-за начального «<» во входной строке. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...