【Java】string split 分割误区

使用Java String.split() 分割时,分割字符为特殊字符需要特别注意。

要点:

1、首先JDK doc里已经说明,split的参数是regex,即正则表达式,而 +、*、| 等都是正则表达式中的特殊符号,所以都需要使用转义,即 “\\+”、“\\|”形式。

2、如果字符串中包含 "\",首先这个字符串中的"\"需要转义,即为"\\",用split时需要写成split("\\\\")。

示例代码:

import org.apache.commons.lang3.StringUtils; // StringUtils.split()

String str1="\\aaa\\bbb\\";
System.out.println(Arrays.toString(str1.split("\\\\"))); // [,aaa,bbb]
System.out.println(Arrays.toString(StringUtils.split(str1, "\\"))); // [aaa,bbb]

上述使用StringUtils.split()函数得到的结果显然更如人意,Java自带的split分割时,如果分隔符位于首位,则结果数组第一个会是空值,而尾部的分隔符却不会在数组最后添加一个空值。StringUtils包则解决了此问题,不会出现空值问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值