这行代码搞砸了我,
String[] parseEmailDomain = parseEmail[1].split(".");
当我System.out.println(parseEmailDomain.length)
时,数组的大小最终为0但是System.out.println(parseEmail[1])
的输出是
cs.uh.edu
任何人都知道为什么当我尝试拆分数组时,它不拆分它但是当我尝试输出数组时它输出完全没问题?
我能够做到这一点
String[] parseEmail = parseLn[i].split("@");
System.out.println(parseEmail[0]);
的输出是hanak
和parseLn是文本文件
答案 0 :(得分:9)
因为.
会匹配任何,因为split需要正则表达式!
您需要使用\
String[] parseEmailDomain = parseEmail[1].split("\\.");
另请参阅此处的相关答案:Java RegEx meta character (.) and ordinary dot?
答案 1 :(得分:2)
尝试在点前添加两个反斜杠:
String[] parseEmailDomain = parseEmail[1].split("\\.");
正则表达式中的一个点表示任何字符。
答案 2 :(得分:1)
参数实际上是正则表达式,所以请改用Scanner或StringTokenizer