本文出处:http://blog.csdn.net/chaijunkun/article/details/17279565,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。

距离上次写技术博客已经有半年时间了,年尾我觉得有必要写点东西总结一下经验,分享给大家。近期在做一个数据同步的项目,从数据中心拿到定时分发的导出文件后,按照固定字段的含义再逐行解析,然后进一步分析后倒入到我这边的数据库。需求简单就是这样,我们来看个例子:

2013-09-29^_^21635265^_^测试标题^_^10^_^20^_^15

假设上面的例子是文本数据的其中一行。在这个例子中,列分隔符采用的是^_^(注意,是多字符的),字段定义分别是

发布日期^_^文章ID^_^文章标题^_^评论数^_^点击数^_^顶数

考虑到对数据中心的信任,我们忽略了“发布日期”、“文章ID”、“评论数”、“点击数”和“顶数”这些字段的非法情况,而将重点放在了分析标题上,因为标题是用户指定的,而可以输入任何可见字符,因此我们还考虑到了在文章中包含我们的分隔符的情况,所以在data.splite()之后采用了掐头去尾的算法,前两个字段正常分析,然后倒着来,从“顶数“,”点击数”和“评论数”分析,剩下的就是标题了。可是我们只考虑了标题中如下形式:

测试标题^_^、测试^_^标题、^_^测试标题

而没有考虑到这样的情况:

测试标题^_

也就是说标题中的末尾带有一半分隔符,这样从逻辑上和真正分隔符的前一半正好能拼成一个合理的分隔符,如:

2013-09-29^_^21635265^_^测试标题^_^_^10^_^20^_^15

所以在拆分字段的时候评论数字段就被拆成了“_^10”,这种情况下是没有办法将其转换为Integer类型的,故而报错。

说起来在这个项目中采用什么样的分隔符还是很早前其他同事定的,直到发生这个问题才觉得有必要改成单个字符,这样就不会产生歧义了。

后来在我用Excel导入其它数据进行分析的时候发现它早就注意到这个问题了,在指定自定义分隔符的时候只允许采用单字符:

解释一下为什么数据文件最好采用单字符作为字段分隔符相关推荐

  1. java解析comtrade文件_一种COMTRADE二进制数据文件的快速解析方法与流程

    本发明涉及电子系统录波领域,更具体地,涉及一种COMTRADE二进制数据文件的快速解析方法. 背景技术: 近年来,随着电子技术的快速发展,电力系统暂态录波明显向高采样率.连续稳态记录和海量存储的趋势发 ...

  2. oracle 普通数据文件备份与恢复

    普通数据文件指:非system表空间.undo_tablespace表空间.临时表空间和只读表空间的数据文件.它们损坏导致用户数据不能访问,不会导致db自身异常.实例崩溃.数据库不恢复就无法启动的情况 ...

  3. 超图导入ArcGIS数据文件

    超图导入ArcGIS数据文件 一.下载 从超图官网下载SuperMap iDesktop 10i桌面工具 官方下载页 二.建立工作空间.空间数据库 空间数据库可使用MySQL外部数据库,也可使用文件型 ...

  4. QTableWidget大数据文件显示(1000万行数据)

    参考: (1条消息) c/c++ qt如何快速的解析(300MB-1G)大文件_江南又旧雨的博客-CSDN博客 上文记录了QTextEdit显示1000万行的数据的开发过程,对于QTableWidge ...

  5. 表单及数据提交、表单的作用、服务端接收提交的数据、php处理数据流程、文件域及文件域中数据处理、php展示数据(响应)

    表单及数据提交: 表单的作用: 用于收集相关信息:html中有专门提交数据的标签,可以很容易的收集用户输入的信息,这个标签有两个重要的属性:action表单提交的地址和method以什么方式提交表单, ...

  6. Hyper-V数据文件丢失解决方案(有图有真相)

    一.Hyper-V虚拟化故障概述 1.虚拟机环境 故障虚拟化环境为ESXI虚拟化服务器,虚拟机环境,虚拟机的硬盘文件和配置文件放在北京某服务器托管公司的DELL MD3200存储中(存储由5块容量为6 ...

  7. MySQL初识-架构-安装-初始化-连接-管理工具-数据文件

    MySQL架构和结构分析 官方架构图 内部组件结构图 MySQL安装方式 MySQL初始化 MySQL工作模式及常用命令 交互式模式:mysql> 1 2 3 4 5 6 7 8 9 10 11 ...

  8. mysql数据库熟悉表空间数据文件_MySQL数据文件介绍及存放位置

    MySQL的每个数据库都对应存放在一个与数据库同名的文件夹中,MySQL数据库文件包括MySQL所建数据库文件和MySQL所用存储引擎创建的数据库文件. 1.MySQL创建并管理的数据库文件: .fr ...

  9. python打包和添加数据文件_python库打包分发setup.py编写指南

    python库打包分发setup.py编写指南 python之所以强大,在于有许许多多的人贡献自己的力量,他们将自己开发的项目打包上传至pypi,这使得python社区有取之不尽用之不竭的第三方库.工 ...

最新文章

  1. MySQL查询语句中的IN 和Exists 对比分析
  2. 解决vs新建项目是模板丢失的问题
  3. [.NET Core].NET Core R2安装及示例教程
  4. linux的定制和发布(二)
  5. redis keys 模糊匹配_别找了,你要的Redis命令都在这了
  6. PAT 1064 朋友数
  7. 为什么分布式数据库中不使用uuid作为主键?
  8. Python Window10 环境安装流程
  9. 高质量代码命名规则 代码整洁之道
  10. 内部 CA 证书管理
  11. 数字人民币智慧学生证来了,对于特定群体硬钱包或大有可为
  12. [10.21][转贴][中国][成龙作品集34部][DVD-RMVB/16.2G][中文字幕/影片截图]
  13. 找不到工作的测试员一大把,大厂却招不到优秀软件测试员?高薪难寻测试工程师。
  14. 离DApp的爆发还差什么?|链捕手
  15. 中科大计算机考研录取分数线_计算机专业学校考研难度排行榜 计算机考研难度排名...
  16. java高校实验室预约管理系统
  17. 聊聊Android5.0中的水波纹效果
  18. 精读《素书》精彩语录及感悟篇(二)
  19. Centos75启动盘安装系统无法进入图形安装界面-提示dracut-pre-udev[348]:modprobe:ERROR: could not inset ‘edd‘
  20. 功率放大器设计方案(包含原理图+PCB+BOM表)

热门文章

  1. PHP:打造一个无限极评论模块
  2. mysql双机热备的配置步骤
  3. 周鸿祎为何忘不掉搜索?
  4. 《R语言机器学习:实用案例分析》——1.3节使用函数
  5. RPC远程过程调用概念及实现
  6. dhcpd.conf配置的有关说明
  7. linux,想说爱你真的很不容易!
  8. 在opencv3中的机器学习算法
  9. 使用System Center Essentials 2007查看计算机的软件清单
  10. 20060516: 实现圆角div效果