tinguo002

 

Java 截取反斜杠 replaceAll和split (“\”)转

转: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


欢迎大家访问我的个人网站 萌萌的IT人

posted on 2013-04-23 14:53 一堣而安 阅读(648) 评论(0)  编辑  收藏 所属分类: java


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜