split 用法问题啊!!高手求解释!

Aaron陌 2011-07-13 11:26:31
public static void main(String args[]) throws IOException
{
String cdpicval= "D:\\asd\\aww\\wwee\\aa.jpg";
String sds []=cdpicval.split("\\");
System.out.println(sds[0]);
System.out.println(sds[1]);
System.out.println(sds[2]);
}
我现在知道 对于路径这类、分割!

运行后错误

Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.split(Unknown Source)
at java.lang.String.split(Unknown Source)
at Test.main(Test.java:11)
...全文
94 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacobkings 2011-07-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 huchengming123 的回复:]

引用 1 楼 cbxjj 的回复:
String sds []=cdpicval.split("\\\\");

==========================================================


问题已经解决!谢谢

还问下
为什么我直接定义 String cdpicval= "D:\asd\aww\wwee\aa.jpg"; (单斜杠……
[/Quote]

String cdpicval= "D:\asd\aww\wwee\aa.jpg";
上面这样写编译可以通过?
String cdpicval = "D:/asd/aww/wwee/aa.jpg";
String sds[] = cdpicval.split("/");
不就完了
bjvfubj 2011-07-13
  • 打赏
  • 举报
回复
接分的
lyhmy 2011-07-13
  • 打赏
  • 举报
回复
用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,也是需要转义的,比如你的字串D:\\asd\\aww\\wwee\\aa.jpg中的\\就需要转义,所以用split("\\\\")方可得到正确结果;
但如果想在串中使用"\"字符,则也需要转义.首先要表达"XXX\XXX"这个串就应该用"XXX\\XXX",然后要分隔就应该用split("\\\\")才能得到正确结果:

[Quote=引用 4 楼 huchengming123 的回复:]
引用 1 楼 cbxjj 的回复:
String sds []=cdpicval.split("\\\\");

==========================================================


问题已经解决!谢谢

还问下
为什么我直接定义 String cdpicval= "D:\asd\aww\wwee\aa.jpg"; (单斜杠)
……
[/Quote]
Aaron陌 2011-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cbxjj 的回复:]
String sds []=cdpicval.split("\\\\");
[/Quote]
==========================================================


问题已经解决!谢谢

还问下
为什么我直接定义 String cdpicval= "D:\asd\aww\wwee\aa.jpg"; (单斜杠)
会报错、
但是前台 file 控件传过来(单斜杠),就没问题! 解释下哦~~


==========================================================

sunny110 2011-07-13
  • 打赏
  • 举报
回复
String cdpicval= "D:\\asd\\aww\\wwee\\aa.jpg";
String sds []=cdpicval.split("\\\\");
System.out.println(sds[0]);
System.out.println(sds[1]);
System.out.println(sds[2]);

这样做,就没有问题了。
D:
asd
aww
liushuo1987 2011-07-13
  • 打赏
  • 举报
回复
转义字符。。。。。。。。。。。。。
剑神一笑 2011-07-13
  • 打赏
  • 举报
回复
String sds []=cdpicval.split("\\\\");
javamyself 2011-07-13
  • 打赏
  • 举报
回复
占楼求分
Kevin-K先森 2011-07-13
  • 打赏
  • 举报
回复
学习···
凯瑞甘 2011-07-13
  • 打赏
  • 举报
回复
\在java中是转义字符的意思
lmzpp 2011-07-13
  • 打赏
  • 举报
回复
学习了。。。。。。。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧