博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
\做为分割符要注意的问题
阅读量:6982 次
发布时间:2019-06-27

本文共 773 字,大约阅读时间需要 2 分钟。

今天在做上传文件的时候,想用简单的办法得到文件名,于是就直接用

 
  1. String[] fileName = filePath.split("\\"); 
  2. System.out.println(fileName[fileName.length-1]);

这行代码去得文件名,开始觉得没有问题,可是一运行报了下面的错误

 
  1. java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 

一看就知道是分割符出现了问题,由于路径是前台传过来的,得到的都是"\"这样的格式,但是当你在类中自己写的时候,如果你写成

 
  1. String filePath = "c:\aaa\bbb\ccc\a.txt"

这种形式,编译器是要报错的,因为API中已经写的很清楚了

 
  1. 在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\\'。  

所在写成

 
  1. String filePath = "c:\\aaa\\bbb\\ccc\\a.txt"

这样才是对的,因此

 
  1. java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 

这个问题的解决方式就是将"\\"写成""

 
  1. String[] fileName = filePath.split("\\\\"); 
  2. System.out.println(fileName[fileName.length-1]); 

这样问题就解决了。问题虽小,但是值得注意!

本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/382461,如需转载请自行联系原作者

你可能感兴趣的文章
网络分层协议图以及各层的简介
查看>>
socke三
查看>>
ExtJs6 理解 -- Ext.data.proxy.Proxy
查看>>
mysql开局配置
查看>>
C#深拷贝
查看>>
魅族 C++ 微服务框架技术内幕揭秘
查看>>
flask 学习笔记 mvc ,sqlalchemy(insert,update)
查看>>
HTML基础(一)
查看>>
EGOImageView 解析
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
linux日常管理3
查看>>
JQ 实现点击按钮显示弹窗,点击非弹窗和按钮区域隐藏弹窗
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
1.解读REST和JAX-RS
查看>>
将RHEL7/centos7系统网卡名称eno16777736改为eth0
查看>>
Nginx域名跳转
查看>>
NTP时间服务器安装
查看>>
Thinkphp3.23 关联模型relation方法不存在解决方法
查看>>