java文本解析

闾丘 2015-08-03 11:19:09
字段一 字段二 字段三 字段四 字段五 字段六 字段七 (注 : 空格一个或多个)

值一 值 二 值五 值六 (注 :值 二 之间有空格 值与值之间有一个或多个空格)
没有值null处理

解析成javabean 可以保存在数据库中
...全文
292 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen870201 2015-08-05
  • 打赏
  • 举报
回复
这没标准的文件是咋生成的?
闾丘 2015-08-05
  • 打赏
  • 举报
回复
dlhansy 2015-08-04
  • 打赏
  • 举报
回复
11楼说的对 1.读取第一行,得到每个字段的字段名,起始位置和长度。方法是按字节读取,读到空格后再读到非空格完成当前字段处理,开始下一字段。 2.从第二行开始,直到结束: 2.1按每个字段起始位置和长度截取字符串。 2.2对每个字符串去除尾部的空格,得到的就是对应字段的值。如果内容为空,可以认为是NULL 3,.之后用Java反射生成java bean,写数据库就行了。
suciver 2015-08-04
  • 打赏
  • 举报
回复
楼主的txt文件每个字段和值都是左对齐的,根据这一特点就可以解析啊,先解析第一行每个字段的左起点位置,这样当解析对应字段上的值时就可以知道两个字段之间的间距,间距之间的就是值,间距之间为空的就是代表这个字段当前没值
syw_csdn 2015-08-04
  • 打赏
  • 举报
回复
你这个值之间还有空格就比较尴尬了
闾丘 2015-08-04
  • 打赏
  • 举报
回复
引用 6 楼 syw_csdn 的回复:

	public static void main(String[] args) {
		String testS = "值一   值 二                                          值五  值六";
		String arrayS[] = testS.replace(" ", ",").split(",");
		for (int i = 0; i < arrayS.length; i++) {
			System.out.println(arrayS[i]);
		}
	}
这样吧
然后呢 然后呢 然后呢 重要的问题问三遍
知己而知彼 2015-08-04
  • 打赏
  • 举报
回复
小手一抖,两分到手
scmod 2015-08-04
  • 打赏
  • 举报
回复
这不行吧感觉... 又不知道空了几个值.. 值之间如果是\t貌似还可以弄下 都是空格我就不回了...
syw_csdn 2015-08-04
  • 打赏
  • 举报
回复

	public static void main(String[] args) {
		String testS = "值一   值 二                                          值五  值六";
		String arrayS[] = testS.replace(" ", ",").split(",");
		for (int i = 0; i < arrayS.length; i++) {
			System.out.println(arrayS[i]);
		}
	}
这样吧
闾丘 2015-08-04
  • 打赏
  • 举报
回复
引用 3 楼 dlhansy 的回复:
问题说的不够清楚,最好举个例子说明问题

这是一个txt文件,就是一个表,读取里面的字段和值,保存到数据库
闾丘 2015-08-04
  • 打赏
  • 举报
回复
引用 2 楼 wi496481 的回复:
截取字符串呗,把那空格截那些截取出来不就是了
说了 空格个数不一定,表头好说,但值就不一定了,有空值,怎么确定那列是空的,连续两列都是空的呢
ll2138 2015-08-04
  • 打赏
  • 举报
回复
我觉得也是要先找出规律
dlhansy 2015-08-04
  • 打赏
  • 举报
回复
还得先找出规律,否则谁也没办法。
闾丘 2015-08-04
  • 打赏
  • 举报
回复
引用 11 楼 suciver 的回复:
楼主的txt文件每个字段和值都是左对齐的,根据这一特点就可以解析啊,先解析第一行每个字段的左起点位置,这样当解析对应字段上的值时就可以知道两个字段之间的间距,间距之间的就是值,间距之间为空的就是代表这个字段当前没值
引用 12 楼 dlhansy 的回复:
11楼说的对 1.读取第一行,得到每个字段的字段名,起始位置和长度。方法是按字节读取,读到空格后再读到非空格完成当前字段处理,开始下一字段。 2.从第二行开始,直到结束: 2.1按每个字段起始位置和长度截取字符串。 2.2对每个字符串去除尾部的空格,得到的就是对应字段的值。如果内容为空,可以认为是NULL 3,.之后用Java反射生成java bean,写数据库就行了。
其实呢字段有22个,有居中,有右对齐,也不一定对齐。。。。
dlhansy 2015-08-03
  • 打赏
  • 举报
回复
问题说的不够清楚,最好举个例子说明问题
迷林 2015-08-03
  • 打赏
  • 举报
回复
截取字符串呗,把那空格截那些截取出来不就是了
闾丘 2015-08-03
  • 打赏
  • 举报
回复
有人路过么。。。。。。。。。。。

50,745

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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