java String split的坑 | 张扎瓦的博客

java String split的坑

一个关于Java String split方法的坑


Java的String中,有一个方法split()

1
public String[] split(String regex)

这个方法根据给定的正则表达式,去切分目标字符串,并返回切分后的结果。

简单的测试代码:

1
2
3
4
5
6
@Test
public void test1() {
System.out.println(Arrays.toString("1,2".split(",")));
}

// 输出结果:[1, 2]

上面的代码,输出结果完全符合预期。然而,当把代码做如下修改时:

1
2
3
4
5
6
@Test
public void test2() {
System.out.println(Arrays.toString("1.2".split(".")));
}

// 输出结果:[]

黑人问号脸

难道不应该输出 [1, 2]吗?

其实问题就出在split的参数上,在Java中,有些特殊符号输入时,是必须要转义的 \

将参数改为\\.,就能输出正确结果了

1
2
3
4
5
6
@Test
public void test3() {
System.out.println(Arrays.toString("1.2".split("\\.")));
}

// 输出结果:[1, 2]
如果我的文章对您有所帮助,不妨打赏一杯豆浆以资鼓励(○` 3′○)