黑马程序员技术交流社区

标题: String类split()方法调用 [打印本页]

作者: 抽烟男孩    时间: 2013-3-25 15:51
标题: String类split()方法调用
本帖最后由 抽烟男孩 于 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:}
作者: 胡志超    时间: 2013-3-25 16:06
你这样试试
String[] result=str.split(new char[]{'\'});
String path=String.Join("\\",result);
作者: 刘文超    时间: 2013-3-25 16:17
  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.         }
复制代码

作者: 我手心里的宝    时间: 2013-3-25 17:28
\是一个特殊的转化符号,你在正则表达式学习的时候就知道了
String[] result=str.split(“\\”);你把这句代码改成String[] result=str.split("\\\\");就可以了
作者: IT菜鸟    时间: 2013-3-25 17:45
Stirng.split();方法中的参数,不是一个普通的字符串,而是一个正则表达式。在正则表达式中,"\" 也是 特殊字符。也需要转义。而正则表达式中的转义字符也是"\".因此 正则
表达式中的指应该是"\\" 来来表示"\".同理 在 java 中也是"\\"表示"\".    因此最后的结果应该是srt.split("\\\\");理解的关键是参数类型为正则表达式,你可以了解一下正则表达式的简单语法。
作者: 董延京    时间: 2013-3-25 18:10
其实,用户输入d:\Test\a.txt这个类型的字符串,在存数的时候java自动转义,存储的字符串就已经是“d:\\Test\\a.txt”,你根本不用再转存了,所以你用(“\\”)来截取的话,系统就报了一个异常。所以如果你要分割的话,用的正则表达应该是s.split("\\\\");
作者: 柳 德 彬    时间: 2013-3-25 18:19
还有一种方式比较简便, 也是可以的,
  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.         }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2