出于某种原因,我的split()在我的代码的一行中起作用,但在另一行中起作用

时间:2014-03-01 22:58:34

标签: java regex arrays string 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("@");

System.out.println(parseEmail[0]);的输出是hanak 和parseLn是文本文件

中的整行

3 个答案:

答案 0 :(得分:9)

因为.会匹配任何,因为split需要正则表达式

您需要使用\

来逃避点
 String[] parseEmailDomain = parseEmail[1].split("\\.");

另请参阅此处的相关答案:Java RegEx meta character (.) and ordinary dot?

答案 1 :(得分:2)

尝试在点前添加两个反斜杠:

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

正则表达式中的一个点表示任何字符。

答案 2 :(得分:1)

'split(String)'的

参数实际上是正则表达式,所以请改用Scanner或StringTokenizer

相关问题