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)

解决方案 »

  1.   

    String sds []=cdpicval.split("\\\\");
      

  2.   

    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
      

  3.   

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

  4.   

    用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,也是需要转义的,比如你的字串D:\\asd\\aww\\wwee\\aa.jpg中的\\就需要转义,所以用split("\\\\")方可得到正确结果;
    但如果想在串中使用"\"字符,则也需要转义.首先要表达"XXX\XXX"这个串就应该用"XXX\\XXX",然后要分隔就应该用split("\\\\")才能得到正确结果: 
      

  5.   


    String cdpicval= "D:\asd\aww\wwee\aa.jpg";
    上面这样写编译可以通过?
    String cdpicval = "D:/asd/aww/wwee/aa.jpg";
    String sds[] = cdpicval.split("/");
    不就完了