По какой-то причине мой split() работает в одной строке моего кода, но не с другой строкой

эта строка кода возится со мной,

String[] parseEmailDomain = parseEmail[1].split(".");

Когда я делаю System.out.println(parseEmailDomain.length) размер массива заканчивается 0, но вывод System.out.println(parseEmail[1]) является

cs.uh.edu

кто-нибудь знает, почему, когда я пытаюсь разделить массив, он не разбивает его, но когда я пытаюсь просто выводить массив, он выводится совершенно нормально?

Я могу это сделать

String[] parseEmail = parseLn[i].split("@");

out out of System.out.println(parseEmail[0]); hanak и parseLn - целая строка из текстового файла

3 ответа

потому что . будет соответствовать чему-либо, потому что split принимает регулярное выражение !

вам нужно будет избежать точки с помощью \:

String[] parseEmailDomain = parseEmail[1].split("\\.");

См. Также соответствующий ответ здесь: мета-символ Java RegEx (.) И обычная точка?


Попытайтесь поставить две обратные следы перед точкой:

String[] parseEmailDomain = parseEmail[1].split("\\.");

Точка в регулярных выражениях означает любой символ.


Параметр "split (String)" на самом деле является регулярным выражением, поэтому вместо этого используйте Scanner или StringTokenizer

licensed under cc by-sa 3.0 with attribution.