java - 由于某种原因,我的 split() 在我的代码的一行中工作,但在另一行中不工作

标签 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 是文本文件中的整行

最佳答案

因为 . 将匹配任何内容,因为 split 采用 regex!

您需要使用 \ 转义点:

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

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

关于java - 由于某种原因,我的 split() 在我的代码的一行中工作,但在另一行中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22121519/

相关文章:

java - 使用 EWS 客户端只读未读邮件

c++ - libboost-XXX-dev 和 libboost-XXX 有什么区别?

arrays - 使用 For 循环迭代数组 30 次

java - java/android中将两个组件附加到同一个事件如何区分每个组件

java - Struts2:将参数传递给操作类不起作用

regex - Grep 正则表达式不适用于 Windows 上的 Cygwin

java - 正则表达式多行 checkstyle 模块不起作用

javascript - 根据数组中的键连接并删除一些 json 元素

ios - Swift - 函数在附加字典中的键值后仅返回 nil?

java - 为什么我会看到 "the temporary folder has not yet been created"消息?