用String分析固定格式的文本
来源:互联网 发布:学院里的杀人游戏 知乎 编辑:程序博客网 时间:2024/06/03 17:22
上学期做一个任务:从 log文件 中提取出 java异常(Exception)的相关信息。 log文件的每一行都有固定的格式:包括 时间戳、信息类型、信息内容 等等。
一开始我想这是不是得用编译原理那套工具 lex、yacc 来做?当时做大作业的时候感觉它们真的是无比强大啊!但仔细一想,觉得没有必要:
- 每行文本有多项数据,每项数据都识别为一个记号(token),太麻烦了!
- 没有什么语法,每一行就是各项数据的一个组合,顺序是一成不变的。
因此我想直接用 String 的各个方法来分析算了,结果事半功倍!其中用到了如下一些方法:
split
这是最重要的一个方法,拆分各个字段就靠它了,如:
"a b c".split(" ")// 将得到 {"a", "b", "c"}
分隔符是一个正则表达式:
"a,b:c".split(",|:")// 也会得到 {"a", "b", "c"}
String 中正则表达式的格式可看: 正则表达式格式简介。
replaceAll
replaceAll 是替换字符串的方法,但我用的却是它的隐藏功能:删除子字符串(替换为空字符串):
"abc;".replaceAll(";", "")// 将得到 "abc"
replaceAll 的第一个参数是正则表达式。
trim
一般用于去掉头尾的空格:
" a bc ".trim()// 将得到 "a bc"
indexOf 和 lastIndexOf
这是一套用于定位字符/子字符串的重载方法。需要注意的是 indexOf('a') 比 indexOf("a") 的效率要高,尽管它们的作用相同。
substring
这是一套截取子字符串的重载方法。 分析文本时可配合 indexOf 使用。
startsWith 和 endsWith 以及 contains
判断是否包含某字符串。
以上各个操作也许看起来并不如何强大,但是如果组合、连接起来用,分析固定格式的文本绰绰有余!
- 用String分析固定格式的文本
- 固定格式的日期 String 转为为一种固定格式的String
- 如何用vc读取固定格式的文本
- 固定文本的国际化
- JS 通过固定格式读取文本内容
- python linecache 处理固定格式文本数据
- 输出固定的格式
- 向Sql Server数据库中导入固定格式的txt文本数据
- 读取文本,匹配固定格式的字符串写入到另一个文件
- Python 数据分析--读写文本格式的公式
- 固定格式的日期输出
- 生成固定格式的date
- 产生固定格式的随机数
- java类型转换:String类型的数字转换成固定格式类型输出的String(有无规则均可)
- 纯文本用textbox,带格式的文本用richtextbox
- 用标准C++读取固定格式的文本文件
- Intellij IDEA中通过Live Templates快速生成一段固定格式的代码,如:文本注释等。
- ASP用文本域添加文本后,如何让文本按原来的格式显示
- javascript学习历程
- Jsp读取数据库返回json数据,Android客户端接收json
- [面试] 百度一道很大的设计题,海量 user 海量 url 访问的问题!
- 《黑马程序员》java笔记->【02】关于封装,构造函数
- 《黑马程序员》java笔记->【02】简化打印字符串输出语句的功能
- 用String分析固定格式的文本
- 《黑马程序员》java笔记->【02】局部代码块,控制变量的生命周期
- 《黑马程序员》java笔记->【02】数组的常见操作:遍历,排序,查找
- 黑马程序员--.NET笔记-骑士飞行棋
- java框架实例---自定义标签实例
- 《黑马程序员》java笔记->数组两种运行异常
- 对君子负责,更对小人负责
- 《黑马程序员》java笔记->细节,关于三元运算符
- 《黑马程序员》java笔记->【02】细节,函数方法运行无结果,没打印