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

例如:获取到的文件路径为C:\Documents and Settings\Leeo\My Documents\logo.gif
现在想要取得图片的名称logo.gif,我们知道反斜杠“\”是转义字符,所以不能直接
String temp[] = filePath.split("\");//filePath的值就是上面的文件路径

来分割文件路径,而应该这样写
/*
*java中\\表示一个\,而regex中\\也表示\,
*所以当\\\\解析成regex的时候为\\
**/
String temp[] = filePath.split("\\\\");

在Linux系统中
System.getProperty("file.separator", "\\")输出为“/”,

而在Windows系统中输出为“\”,所以要兼容两者可以这么写
String temp[] = filePath.replaceAll("\\\\","/").split("/");

获取文件名称的完整代码如下:
String temp[] = filePath.replaceAll("\\\\","/").split("/");
String fileName = ""
if(temp.length > 1){
    fileName = temp[temp.length - 1];
}

时间: 2024-10-05 04:10:15

java中从含反斜杠路径截取文件名的方法的相关文章

关于Python中正则表达式的反斜杠问题

之前总是搞不明白正则表达式中的反斜杠的问题.今天经过查阅资料终于搞明白了. 其中最重要的一点就是Python自己的字符串中定义的反斜杠也是转义字符,而正则表达式中的反斜杠也是转义字符,所以正则表达式中反斜杠会涉及到双重转换的问题. 要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为"\\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\\\"三个肯定

MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义(转)

MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义 问题描述:mysql中带有反斜杠的内容入库后,发现反斜杠无故失踪了(俗话说被吃掉了) 例:插入insert into tb('url') values('absc\eeee'); 结果数据库里的内容是:absceeee(反斜杠没了呢) 这么详细了相信大家都搞清楚问题了吧,下面看解决方案. 解决方案:用addslashes(),mysql_escape_string()等函数进行处理,也就是在插入数据库前,把内容处理一下  如:$cc = ad

在C++中怎么输入反斜杠“ \ ”

在C++编程中有时就会遇到有些符号不能直接输入,像反斜杠“ \ ",如果直接输入会出现:错误的终止了宏调用的错误. 这时,我们就需要把这些符号转义一下, 例如: CString str = " \ " ;//错误!出现:错误的终止了宏调用! CString str = " \\ ";//正确.使用了转义字符‘\'这样其实输入的还是” \ ";

AS3中正则表达式对反斜杠的替换

一个有趣的小问题,下面的正则表达式能替换成功么? var __str:String = \'12346789\'; trace(__str.replace(/\\/g, \'5\')); 答案是:不能.trace出来的结果为: [trace] 12346789 其实正则本身并没有写错,错在被替换的字符串.反斜杠“”在AS3中是转义符,会将其后的任何值转换为本身,因此看到的字符串其实本身就是12346789,也就是没有反斜杠,当然无法搜索到. 直接trace(__str),结果和上面的trace相

print语句中逗号(,)和反斜杠(\)的区别

逗号结尾:   禁止输出换行反斜杠结尾:强制输出换行 >>> print ('A','B') #用一个逗号结尾就可以禁止输出换行 A B >>> print ('A' \ 'B') #反斜杠结尾强制输出换行,否则就会报错 SyntaxError: unexpected character after line continuation character >>> print ('A' \ #反斜杠表示下一行在逻辑上是本行的后续内容 ' B' ) A B

用正则表达式匹配网址URL中最后一个反斜杠/后面的内容

测试内容: http://b174.photo.store.qq.com/psb?/V10CD1yE07IujV/eMbKzb1rzHY56uejjCDlOsR3hhQY53jBobTL7Zh9lUg!/c/dK4AAAAAAAAA&bo=fAF0AAAAAAAFACo!&rf=mood_apphttps://www.zhihu.com/question/37415530/answer/118246241?group_id=751055135773331456http://zhidao.b

java 和 JS(javaScript)中的反斜杠正则转义

首先说下为什么要转义.在正则中有些字符有特殊含义的,比方说 * 可以前一子表达式的任意次,. 表示除"\r\n"之外的任何单个字符,+ 表示前一子表达式的一次或多次,等.而在有些情况下,需要正则验证这些字符,比方说要验证加减乘除四个运算符号,为了告诉编译器,你要验证的是一个字符而不是正则表达式,就要对这些有特殊含义的字符进行转义,这样就有了转义这一操作. 在java 和javascipt中,都是用反斜杠"\"进行转义,然后两种语言的用法不尽相同,下面举例说明: 1.

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

Java中有时候会打印出来会含有反斜杠(\)的字符串,我们需要删除时,可以使用 replace() 或 replaceAll() 但是要注意的是replaceAll()里面用的是正则表达式,所以一个斜扛要写4个,即在这个函数里,\\\\代表\(是个反斜杠代表打印出的一个斜杠) 用str.replaceAll( “\\\\”,  “”);就实现了消除str中的所有反斜杠.

[Asp.net]c#中的斜杠和反斜杠

引言 在外地出差,给客户部署项目,三家做的项目要在一起集成,这就造成数据格式不同,路径中的斜杠和反斜杠造成了很大的问题. 查了一下这方面的资料,这里做一些记录,算是一个小结吧. 正斜杠(/)与反斜杠(\)总结 正斜杠/表示除法,分隔.在windows系统中通常用来分隔命令行参数,/表示选项等.不能作为文件名. 反斜杠\,在windows系统中用来表示目录. 而在unix系统中,/表示目录.由于web遵循unix命名,所以在网址(URL)中,/表示目录. C#中反斜杠\与斜杠/ 转移字符路径的问题