You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用单个反斜杠也能按换行符拆分字符串?

为什么Java中split("\n")和split("\\n")都能拆分换行符?

这其实是Java字符串转义和正则表达式转义双重规则共同作用的结果,咱们一步步拆解清楚:

1. 先看原字符串里的"\n"

你定义的String message = "hello\nworld";里,\n是Java字符串的转义序列,它会被直接解析为实际的换行符字符(ASCII码10),而不是两个独立的字符\和n。

2. 分析split("\n")的情况

当你调用split("\n")时:

  • Java先处理这个字符串参数:"\n"被解析为单个换行符字符
  • 然后把这个字符传给正则引擎,正则引擎里的换行符本身就匹配文本中的换行符,所以能正确拆分出hello和world。

3. 再看split("\\n")的情况

当你写"\\n"时:

  • Java字符串转义规则:第一个\是转义符,用来转义第二个\,所以这个字符串最终被解析为字符串"\n"(也就是两个字符:\和n)
  • 然后正则引擎接收到这个字符串作为正则表达式,正则里的\n是预定义字符类,专门用来匹配换行符,所以同样能匹配到原字符串里的换行符,实现拆分。

简单总结就是:两种写法最终在正则引擎层面,都能匹配到原字符串里的换行符——一种是直接传了换行符字符,另一种是传了正则的换行符转义序列,效果完全一致。


内容的提问来源于stack exchange,提问作者Cheok Yan Cheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:23:16