使用句点(.)拆分的字符串显示不同的行为

Ank*_*gam 1 java string

我工作String,并试图split().像: -

String s = "Hi.Hello";
System.out.println(Arrays.toString(s.split(".")));
Run Code Online (Sandbox Code Playgroud)

上面的代码输出[]空数组.但如果我逃脱.:

String s = "Hi.Hello";
System.out.println(Arrays.toString(s.split("\\.")));
Run Code Online (Sandbox Code Playgroud)

它给出了正确的输出[Hi, Hello].

所以我想知道: -

为什么我需要逃避,..它通常不被认为是String我们可以.直接使用的转义字符.

Flo*_*etz 14

String.split( String )方法采用正则表达式作为参数.在正则表达式"." 意思是"任何字符",所以你必须逃避它(通过添加"\\"),如果你真的想要拆分"." 而不是"任何角色".

有关正则表达式的启动器,请参阅Pattern的api文档.