for (String s : stringList) { int i = s.indexOf("|") + 1; // 得到索引下标 String str = s.substring(i); String result = str.substring(0, str.indexOf("|")); System.out.println(result); }
int i = s.indexOf("|")+1; // 得到索引下标 String result = s.substring(i, s.indexOf("|", i)); System.out.println(result);
Pattern pattern = Pattern.compile("[^|]+\\|([^|]+).*"); for (String s : list) { Matcher matcher = pattern.matcher(s); if (matcher.find()) { System.out.println(matcher.group(1)); } }
数据格式不能有错
for (String s : list) { String[] split = s.split("\\|"); if (split.length >= 2) System.out.println(split[1]); }
=VLOOKUP(C:C,Sheet2!A:B,2,FALSE)
@TabKey9,你的原始需求是啥呀。。总感觉可以有更优雅的方式实现
@TabKey9,你的 a.txt b.txt 能变成从一开始就生成 a.csv b.csv 嘛?(或者不存在 , " 等csv里的特殊字符也行)
a.txt
b.txt
a.csv
b.csv
,
"
csv
这样就可以很方便地用 SQLite 实现了:
SQLite
sqlite3 -csv :memory: '.import a.csv a' '.import b.csv b' 'SELECT a.a, a.b, b.c, b.d, b.e FROM a JOIN b ON xxx'
.csv
@TabKey9,你是说,用户上传a.txt,你本身有b.txt,你
从a.txt截取2个字段,再从b.txt截取3个字段,关联起来
后,生成 .xls。
.xls
用户下载该 .xls,再上传给另一个服务器,由其导入至数据库??
@TabKey9,Emm.. 用户上传 a.txt b.txt (用户哪儿来的这俩文件?),你
后,生成 .xls,用户下载,上传,你导入??
感觉你可以在前端完成
功能,直接上传给第二个服务器导入至数据库
@TabKey9,我只是觉得,你在另一个帖子里,写得代码好复杂。。
万一需求变动一下,是不是又要改一大片了。。
万一需求变动一下,是不是又要改一大片了。。{惊哭}
@TabKey9,你不是还要关联a.txt b.txt 的某些字段嘛。。
要是哪天需求变成了,类似数据库里的 LEFT JOIN、RIGHT JOIN、FULL JOIN 咋办
LEFT JOIN
RIGHT JOIN
FULL JOIN
你不是还要关联a.txt b.txt 的某些字段嘛。。 要是哪天需求变成了,类似数据库里的 LEFT JOIN、RIGHT JOIN、FULL JOIN 咋办
正则可能会慢一些
数据格式不能有错
@TabKey9,你的原始需求是啥呀。。总感觉可以有更优雅的方式实现
@TabKey9,你的
a.txt
b.txt
能变成从一开始就生成a.csv
b.csv
嘛?(或者不存在,
"
等csv
里的特殊字符也行)这样就可以很方便地用
SQLite
实现了:@TabKey9,你是说,用户上传
a.txt
,你本身有b.txt
,你后,生成
.xls
。用户下载该
.xls
,再上传给另一个服务器,由其导入至数据库??@TabKey9,Emm.. 用户上传
a.txt
b.txt
(用户哪儿来的这俩文件?),你后,生成
.xls
,用户下载,上传,你导入??感觉你可以在前端完成
功能,直接上传给第二个服务器导入至数据库
@TabKey9,我只是觉得,你在另一个帖子里,写得代码好复杂。。
万一需求变动一下,是不是又要改一大片了。。
@TabKey9,你不是还要关联
a.txt
b.txt
的某些字段嘛。。要是哪天需求变成了,类似数据库里的
LEFT JOIN
、RIGHT JOIN
、FULL JOIN
咋办那是我的业务需求,工具类不包含这些,我自己用这工具类完成一部分工作,剩下需求的自己完成