java转义字符包括元字符_String中使用split()分割字符串遇到元字符的问题

使用split()切割字符串的时候,假如是根据"+","*","\"等一些字符切割,直接这么一个单独的字符串是会报错的,因为split()是根据正则匹配,所以传入的字符串不能是正则的元字符.但是又非得用这些元字符去分割的话,只能通过转义的方法了.

转义字符是"\",在要转义的元字符前面加上这个转义字符,元字符就变成了普通的字符: s.split("\+")

但是在java里,"\"也是有含义的,所以直接s.split("\+")还是会报错的...所以这时候需要将"\"也进行转义,转义为普通的"\"字符,就成了s.split("\\+")

s.split("\\+")的意思就是先将"\"转译为普通的"\"字符,这时候从java的视角看就是"\+",然后这个字符串传入到正则中,正则就会将其转译为"+"字符,所以就可以通过这个"+"分割字符串了.

万一分割字符串的是个"\"怎么办?直接s.split("\\\")么?

不行的,这是会报错的...因为这个的意思是先将"\"转成字符"\",然后另一个"\"怎么办...所以得写成s.split("\\\\"),两个转义"\"分别把元字符"\"转成普通字符,通过java的视角看是"\\"这字符串.然后传给正则,正则一看,一个转义字符要转义另一个转义字符,然后得出的结论就是"\"字符,然后就开心的分割字符串了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值