String.split 使用特殊字符 作为 分隔符如:* ^ : | , . 报错 java.lang.ArrayIndexOutOfBoundsException: 0

使用String.split()方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。

场景一:

1、字符串中存在 “ . ” 或  “ | ”  或  “ * ” 或  “ + ”  或  “ : ”   或  “ ^ ”  或  “  的时候,需要通过转义符进行转译,因为直接写的话系统是无法识别的。

如:

String.split(".")  或者  String.split("|")  或者  String.split("*")   或者  String.split("+")

报错:

java.lang.ArrayIndexOutOfBoundsException: 0
	at com.ruyi.pdf.util.PDFUtil.separatePath(PDFUtil.java:677)
	at com.ruyi.pdf.util.PDFUtil.imageWaterMark(PDFUtil.java:591)
	at com.ruyi.pdf.util.PDFUtil.main(PDFUtil.java:38)

解决:

String.split("\\ .")  或者  String.split("\\ |")  或者  String.split("\\ *")  或者  String.split("\\ +")

具体可以查询 JDK1.6 或 JDK1.8  中 ,java.lang包中的String.split(String regex)方法中的规则表达式


场景二

如果在一个字符串中有多个分隔符,可以用 “ | ” 作为连字符;

比如:

“acount=? and uu =? or n=?”

把三个都分隔出来,可以用

String.split("and | or");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值