关闭

java String的split方法容易犯的错误

236人阅读 评论(0) 收藏 举报

今天用split方法分割一个类似"9580|9570|9571"的字符串,用Arrays.asList将String[]转成List,结果却是这样

[9,5,8,0,|,9,5,7,0,|,9,5,7,1]

列出几个要点

 

  1. 首先java doc里已经说明, split的参数是reg, 即正则表达式, 如果用"|"分割, 则需使用"\\|"
  2. 用* 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此, 因此也应加入"\\"
  3. 如果字符串中包含"\",首先这个字符串中的"\"需要转义, 即为"\\", 用split时需要写成split("\\\\"), 例子如下System.out.println(Arrays.asList("aaa\\bbb\\bccc".split("\\\\")));

          可以这样思考, 要写成用"\"分割,则首先需要转义"\\", 同时要让"\\"在正则表达式中有意义, 还需在第一个"\"和第二个"\"前面再加一个"\", 就变成了四个"\".


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:973457次
    • 积分:8483
    • 等级:
    • 排名:第2416名
    • 原创:125篇
    • 转载:448篇
    • 译文:3篇
    • 评论:37条
    最新评论