数据库的记录读出后将每个字段用“|”分割形成一个txt文件。
然后再读入时,每读一行就以“|”来SPLIT成一个数组然后进行数据校验。
但问题出现了,在姓名字段中有某些特殊的字如“陓”后会无缘无故多出一条“|”(将该字放入ultraedit中然后选择该字你会看到多了条竖线)导致分割出来的数组不正确,请问怎么解决呢

解决方案 »

  1.   

    数据库的记录读出后将每个字段用“|”分割形成一个txt文件。
    跟踪下这步看看,看到底是哪里多出来的。
      

  2.   

    String str = s.split(Pattern.quote("|"));split 中的字符串不是字面意义,而是正则表达式,不巧的是“|”在正则表达式中具有特殊含义,在正则表达式中一共有 15 个字符拥有特殊含义,如果不了解的话,就采用上面这种一劳永逸的方法。Pattern.quote 在 JDK 1.6 以下版本中有些 BUG,最好使用 JDK 1.6 或以上的版本。
      

  3.   

    如果知道哪些是具有特殊含义的字符,就可以直接进行转义:String str = s.split("\\|");
      

  4.   

    哥好久无上csdn.个人认为:这个问题就是格式不标准.如你能把内容中|转义就能解决.如在前加上".如不能请使用csv等标准的文件拆分.