Java 截取反斜杠 replaceAll和split (“\”) 问题解决办法

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拆分特殊字符的时候,会发现达不到自己想要的结果。比如

  1. "1234567891^1234567890".split("^")[1]

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

  1. "1234567891^1234567890".split("\\^")[1]

Java 截取反斜杠--java使用split拆分特殊字符的更多相关文章

  1. shell脚本中的反引号,单引号,双引号与反斜杠

    转自:http://blog.sina.com.cn/s/blog_6561ca8c0102we2i.html 反引号位 (`)经常被忽略,而且容易与单引号弄混.它位于键盘的Tab键的上方.1键的左方 ...

  2. java中从含反斜杠路径截取文件名的方法

    例如:获取到的文件路径为C:\Documents and Settings\Leeo\My Documents\logo.gif现在想要取得图片的名称logo.gif,我们知道反斜杠“\”是转义字符, ...

  3. JAVA正则表达式中如何匹配反斜杠 \

    有时候我们需要匹配反斜杠,你可能会把对应的正则表达式写成 "\\" 然后可能会有如下输出: Exception in thread "main" java.ut ...

  4. java 删除字符串中的反斜杠\

    Java中有时候会打印出来会含有反斜杠(\)的字符串,我们需要删除时,可以使用 replace() 或 replaceAll() 但是要注意的是replaceAll()里面用的是正则表达式,所以一个斜 ...

  5. PHP,JAVA,JAVASCRIPT的正则表达式里的反斜杠\的不通之处

    我的博客:www.while0.com 首先,java和javascript强制字符串输出\必须用\转义,所以要输出一个\,java和javascript都要两个\: java代码: String s ...

  6. 使用java中replaceAll方法替换字符串中的反斜杠

    今天在项目中使用java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常: java.util.regex.Pa ...

  7. java中replaceAll反斜杠\ or java中replaceAll 括号[

    java中replaceAll反斜杠\   String s=new String("this is a \\"); s.replaceAll("\\",&qu ...

  8. java反斜杠替换

    java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠 例如 str1="aa\bbb"; str2="aa'bbb"; 要想替换成 str ...

  9. 微信小程序session_key解析中反斜杠问题处理 Java解析

    Java服务端微信小程序解密用户信息.手机号需用到session_key也需要decode,以下是官方描述: 加密数据解密算法 接口如果涉及敏感数据(如wx.getUserInfo当中的 openId ...

随机推荐

  1. ASP图片格式与base64数据互转方法

    ASP图片格式与base64数据相互转换的方法,经常用于处理表单中存储有base64字符串格式的图片. 获取到base64数据,转换成图片 <% Subfolder=year(now)& ...

  2. 使用Xmanager工具连接Linux服务器

    测试环境:RHEL5.8 1.# vi /usr/share/gdm/defaults.conf --修改以下三项Enable=true DisplaysPerHost=10 Port=177 All ...

  3. ionic 字体的导入方法

    更换字体 这是第一个图标(蜜蜂推荐)是撸主原来的图标 这是UI给的效果图的图标,显然默认的图标不符合要求 查找图标所在的样式,在tabs.html文件中 <ion-tabs class=&quo ...

  4. 小学生之JAVA中的分层

    三层架构 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL). 区分层次的目的即为了“高内聚,低 ...

  5. Android-Eclipse汉化

    首先下载好汉化包 解压后得到eclipse文件夹 然后在eclipse根目录下创建language文件夹 将eclipse文件夹放入 在eclipse根目录下创建links文件夹 然后在里面添加这个文 ...

  6. TODO、FIXME和XXX转载

    代码中特殊的注释技术——TODO.FIXME和XXX的用处 // TODO Auto-generated method stub

  7. js 定义函数的几种方法 以及如何调用

    /*1.方法调用模式: 先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来执行方法,this即指当前的myobject 对象.*/ var car = { carId ...

  8. mobx react

    目录结构: Model/index.js 'use strict'; import { action, autorun, observable, computed } from "mobx& ...

  9. C# string.format转义大括号--转

    转义大括号 左大括号和右大括号被解释为格式项的开始和结束.因此,必须使用转义序列显示文本左大括号或右大括号.在固定文本中指定两个左大括号 ("{{") 以显示一个左大括号 (&qu ...

  10. 堆/栈的比较 以及 malloc/new动态内存的开辟

    堆与栈的比较:1.申请方式(1)栈(satck):由系统自动分配.(2)堆(heap):需程序员自己申请(c:调用malloc,realloc,calloc申请 free 来释放),并指明大小,并由程 ...