Java 截取反斜杠--java使用split拆分特殊字符

orgn link : http://blog.csdn.net/scy411082514/article/details/7987852


Java 截取反斜杠 replaceAll和split (“\”) 问题解决办法 
2009年07月15日 星期三 上午 11:26 
xxx.split("\\") 显然得不到想要的结果 

正确方法 

xxx.split("\\\\"); 

原因如下: 

在Java中处理一些路径相关的问题的时候,如要取出ie浏览器上传文件的文件名,由于ie会把整个文件路径都作为文件名上传,需要用java.lang.String中的replaceAll或者split来处理。如: 

上传文件路径为:C:\Documents and Settings\collin\My Documents\111-lazyloading.gif,欲取出文件名:111-lazyloading.gif。可以 

String temp[] = name.split("\\\\"); 
if (temp.length > 1) { 
name = temp[temp.length - 1]; 


regex为\\\\,因为在java中\\表示一个\,而regex中\\也表示\,所以当\\\\解析成regex的时候为\\。 

由于unix中file.separator为斜杠"/",下面这段代码可以处理windows和unix下的所有情况: 

String temp[] = name.replaceAll("\\\\","/").split("/"); 
if (temp.length > 1) { 
    name = temp[temp.length - 1]; 
}


在使用java中的split拆分特殊字符的时候,会发现达不到自己想要的结果。比如

 

Java代码   收藏代码
  1. "1234567891^1234567890".split("^")[1]  
 

会提示数组下标越界异常,说明根本没有拆分成功。究其原因,原来^是特殊字符,split中的参数为正则表达式,所以要想让split识别特殊字符,就需要把参数转变为正则,即在参数前加上"\\"即可。

 

Java代码   收藏代码
  1. "1234567891^1234567890".split("\\^")[1]  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值