java - 为什么句点分割需要双反斜杠?

标签 java split

我有一个Stringfilename :

filename = "z_cams_c_ecmf_20170217000000_prod_fc_pl_015_aermr04.nc";

当我尝试拆分filename时获取变量名aermr04.nc ,我尝试了以下方法:

String varibleName = filename.split("_")[9].split(".")[0];

上面的代码行抛出 IndexOutOfBoundsException .

为什么?

我可以使用以下方法让它工作:

String varibleName = filename.split("_")[9].split("\\.")[0];

但是,我不得不摆弄这些琐碎的任务,这似乎很愚蠢......

知道为什么第二个例子有效吗?这种语法背后的原因是什么?

最佳答案

.split() 的参数被视为正则表达式。 "." 作为正则表达式匹配所有内容。

要匹配句点,您需要将 "." 正则表达式转义为 "\\."

关于java - 为什么句点分割需要双反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42307043/

相关文章:

javascript - 将字符串拆分成对、三元组、四元组和 on (ngrams)?

java - 如何使用 twitter4j 删除转推

java - Hibernate.INTEGER不可用,当Hibernate版本升级到4.2.0.CR1时

java - 使用mvn idea时无法加载intellij模块:idea

java - 绘制线程

regex - R中按字母/字符数拆分列标签

java - 未经检查的转换警告

javascript - 如何在 JavaScript 中每 4 个字符之间添加空格?

algorithm - 如何根据项目的重量将项目列表分成相等的分区?

python - Str 在 Dask Dataframe 中拆分并展开