大概就是这样一个表格:
http://i.imgur.com/kBCekRl.png
表格的位置在 txt 中不固定,没有制表符……
表格内容数据也不固定……
怎样用 java 分析出这里有个表格然后吧数据提取出来呢?
1
soratadori 2015-11-01 03:27:09 +08:00
这个表格每一个字段似乎是定长的,那就很简单了,直接分析每一行有多少个空格,大于一定数量的就判断为表。大概就这么个思路
|
2
lzxgh621 2015-11-01 03:31:49 +08:00
似乎只有最后一列数据有空格,前面的数据都没有空格。
|
3
kokutou 2015-11-01 07:55:17 +08:00
excel 直接打开然后选固定宽度,就 OK 了。 Java 分析的话,就找字母记宽度咯。
|
4
azuginnen 2015-11-01 09:10:56 +08:00 via Android
AWK 可破
|
5
plqws 2015-11-01 10:27:43 +08:00
按照第四行的 - 的长度来截取可破
|
6
Victor215 2015-11-01 10:30:28 +08:00
AWK +1
|
7
fengyqf 2015-11-01 11:38:30 +08:00
找规律,找规律后,你有无数的方法处理。
现成的工具,比如 awk , excel 自己写脚本,随便一种编程语言都行吧 |
9
hantsy 2015-11-01 14:48:34 +08:00
这个好像宽度固定的啊,,,很好解决的吧。
|
10
jukka 2015-11-01 15:46:23 +08:00 via iPhone
C 里 fscanf 就可以了。
不过目测 awk 不超过 10 行代码。 |
11
iluhcm 2015-11-01 16:44:28 +08:00
正则,“\\s+”
|
12
jings 2015-11-01 16:49:27 +08:00
调用 shell 很快吧
|
13
czk1997 OP |
14
fengyqf 2015-11-02 09:41:23 +08:00
@czk1997
再补充一个思路,该 txt 文件是谁生成的,能否拿到其源码或联系其开发人员,这样就不用费力的猜测规律了。 最主要的还是要“找规律”,只要规律确定,只是个按你所使用工具(或编程语言)的语法要求,按规律实现拆分即可。 |
15
tees 2015-11-02 09:53:03 +08:00
awk +1
|
16
wizardoz 2015-11-02 13:18:00 +08:00
我觉得 5 楼说的靠谱,根据第四行的-------分析出每列的宽度,然后截取。
|
18
wwjvtwoex 2015-11-03 10:29:27 +08:00
表头高度固定 ?
第 1 列是序号? |
21
wwjvtwoex 2015-11-06 20:28:51 +08:00
先找分割线所在行,在向下查找首部有连续数字的行
|