一个String字符串的问题2

本文探讨了Java中String.split方法使用时的注意事项,特别是如何正确地将点号(.)作为分隔符。通过两个示例对比了直接使用点号与转义点号的区别,并解释了背后的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

今天遇到个问题:

String str = "clu";
String[] arrays0 = str.split(".");
String[] arrays1 = str.split("\\.");
log.info("####hi0" + gson.toJson(arrays0));
log.info("####hi1" + gson.toJson(arrays1));


output:

14:20:59.734 [main] INFO com.clu.bleach.demo.StringDemo - ####hi0[]
14:20:59.737 [main] INFO com.clu.bleach.demo.StringDemo - ####hi1["clu"]

一个是得到了空String数组,另一个则拥有一个字符的数组。为什么会这样呢?

分析:
String.split方法是接收正则表达式的,而默认情况下,split方法就把点号,当作正则表达式来处理了。点号在java的正则表达式里表示的是所有的字符。所以如果我们要以点号作为分隔符就必须对点号进行转义,通常用反斜杠作为转义字符"\.",所以上面我们就要split("\\.")来分隔,这个是因为java里不能识别反斜杠,必须要再用反斜杠进行转义才能做到编译不出错。

找了一篇java正则表达式的文章,如下:
http://www.tutorialspoint.com/java/java_regular_expressions.htm

还有一个中文版的:
http://www.runoob.com/java/java-regular-expressions.html

----EOF----
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值