Как разбить строку по нескольким разделителям в Java - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь разбить строку 'id @ namespace' на @.

Это особый случай, когда идентификатор имеет формат name@gmail, в результате чего строка, которую я пытаюсь разбить, выглядит как name@gmail@namespace.

Есть ли способ достичь этого только разбиенияпоследним @, который даст мне name@gmail и namespace?

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Вы можете сопоставить последние @, используя отрицательный прогноз (?!, чтобы утверждать, что больше нет @ следующих:

@(?!.*@)

Regex demo

System.out.println("name@gmail@namespace".split("@(?!.*@)")[0]); //name@gmail

0 голосов
/ 15 октября 2018

Если это всегда последний индекс.Используйте lastIndex, чтобы найти последний индекс символа, а затем используйте substring

Примерно так:

int idx = string.lastIndexOf("@");
String[] splitStrings =  {string.substring(0, idx), string.substring(idx)};
...