A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 抽烟男孩 中级黑马   /  2013-3-25 15:51  /  2111 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 抽烟男孩 于 2013-3-25 18:38 编辑

String[] result=str.split("\");每次希望调用split函数把用户输入的路径名如:d:\Test\a.txt变成d:\\Test\\a.txt以方便实现window系统下的路径总是失败,尝试String[] result=str.split(‘\');或String[] result=str.split(“\\”);也是失败,最后尝试字符集依然失败。苍天啊,这是为什么呢?{:soso_e118:}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

6 个回复

倒序浏览
你这样试试
String[] result=str.split(new char[]{'\'});
String path=String.Join("\\",result);

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
  1. String str="d:\\Test\\a.txt";
  2.         String[] result=str.split("\\\\");
  3.         for(int i=0;i<result.length;i++){
  4.                 System.out.println(result[i]);
  5.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
\是一个特殊的转化符号,你在正则表达式学习的时候就知道了
String[] result=str.split(“\\”);你把这句代码改成String[] result=str.split("\\\\");就可以了

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
Stirng.split();方法中的参数,不是一个普通的字符串,而是一个正则表达式。在正则表达式中,"\" 也是 特殊字符。也需要转义。而正则表达式中的转义字符也是"\".因此 正则
表达式中的指应该是"\\" 来来表示"\".同理 在 java 中也是"\\"表示"\".    因此最后的结果应该是srt.split("\\\\");理解的关键是参数类型为正则表达式,你可以了解一下正则表达式的简单语法。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
其实,用户输入d:\Test\a.txt这个类型的字符串,在存数的时候java自动转义,存储的字符串就已经是“d:\\Test\\a.txt”,你根本不用再转存了,所以你用(“\\”)来截取的话,系统就报了一个异常。所以如果你要分割的话,用的正则表达应该是s.split("\\\\");
回复 使用道具 举报
还有一种方式比较简便, 也是可以的,
  1. String str="d:/Test/a.txt";
  2. String[] result1=str.split("/");
  3. for(int i=0;i<result1.length;i++){
  4.                     System.out.println(result1[i]);
  5.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马