String split函数求解

bedonga 2015-11-29 06:44:44
我用这一段代码读取txt文件:
private void readFile(File localFile) {
String result="";
List<TCospResinstrela> list=new ArrayList<TCospResinstrela>();
try{
BufferedReader br = new BufferedReader(new FileReader(localFile));//构造一个BufferedReader类来读取文件
String s = null;
while((s = br.readLine())!=null){//使用readLine方法,一次读一行
String[] temp =s.split("|");
System.out.println(temp[0]);
TCospResinstrela tCospResinstrela=new TCospResinstrela();
tCospResinstrela.setResourcescode(temp[1]);
tCospResinstrela.setPropcontent(temp[2]);
tCospResinstrela.setResourcesinstcode(temp[3]);
tCospResinstrela.setPos(Integer.parseInt(temp[4]));
tCospResinstrela.setCtime(temp[5]);
tCospResinstrela.setMemo(temp[6]);
//result = result + "\n" +s;
list.add(tCospResinstrela);
}
br.close();
autoDataService.insertRela(list);
}catch (Exception e) {
e.printStackTrace();
}
System.out.println(result);
}


txt文件每行格式是这样的:127|20151105000170|Money:9998;|20151109000002|26|20151109181728||

然后经过s.split("|")后,temp的值为:[, 1, 2, 7, |, 2, 0, 1, 5, 1, 1, 0, 5, 0, 0, 0, 1, 7, 0, |, M, o, n, e, y, :, 9, 9, 9, 8, ;, |, 2, 0, 1, 5, 1, 1, 0, 9, 0, 0, 0, 0, 0, 2, |, 2, 6, |, 2, 0, 1, 5, 1, 1, 0, 9, 1, 8, 1, 7, 2, 8, |,|]

为什么会切成这样?另外如果我这样写s.split("\|");会报错,没有“\|”的写法,各位java大神,求解怎么用split函数切成127,20151105000170,Money:9998;。。。这样呢?
...全文
126 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony4geek 2015-11-30
  • 打赏
  • 举报
回复
split 里面是正则。 | 是正则里面的或。
长安塬上人 2015-11-30
  • 打赏
  • 举报
回复
需要转译!!!!!
kyleyu2012 2015-11-29
  • 打赏
  • 举报
回复
因为split使用了正则表达式作为字符串分割的规则, 若想要以|作为分割需要正则表达式的转义符号\ 碰巧Java里的转义符也是\ 所以需要\\|的格式
kyleyu2012 2015-11-29
  • 打赏
  • 举报
回复
试试split("\\|")

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧