由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教: 想用java实现解析parse一个log文件,多谢指点
相关主题
dropbox 面经A 家两轮电话面试面经攒人品
简单的正则表达式的字符串匹配leetcode的valid number的考点在哪里呢?
Amazon 1rd Phone Interview questions请教下个sscanf正则表达式逗号隔开赋值的问题
Amazon 1st round interviewLeetcode 正则表达式那道题目的例子
amazon 找电话号码题一问面试题:根据输入字符串,返回正则表达式
攒人品&&求好运&&发面经:A的第一电问一个FB的题
准备好好做做leetcode上的题正则表达式的问题
leetcode regular expression match的问题叹口气:刷题似乎更需要的是持久
相关话题的讨论汇总
话题: must话题: 解析话题: 文件话题: parse话题: log
进入JobHunting版参与讨论
1 (共1页)
m***l
发帖数: 45
1
要实现下面的功能,可是一点儿idea都没有,该用什么类什么思路实现
恳请java前辈指点
万分感谢!!
将类似这样的一个比较长的.log文件解析开
[18/09/2011 06:53:21:021 PM] ERROR Main 70: Running logger, watch out!
java.lang.IndexOutOfBoundsException: Index: 99, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
[18/09/2011 06:53:21:021 PM] INFO Main 73: Running logger, watch out!
[18/09/2011 06:53:21:021 PM] INFO Main 73: Identity manager starting.
。。。。。。。
按时间解析开,比如上面的一段就是按时间分的3条
要求是:
+不能用stream把整个文件load到内存
+还要把每个时间和后面的内容解析开
+最好用普通的方法不用特别的类
其实我也不知道解析到什么地方怎么表达
原题要求
- Must not load entire file in memory (stream)
- Must capture the entire entry (single and multiple lines)
- Must split the entry also in two parts, timestamp and the rest of the
entry
- Must use a regular expression to parse
- Must be configurable to parse log files in slightly different formats
并且最后一条要求都不太理解什么意思
还请前辈指点
d**********x
发帖数: 4083
2
正则呗。。两个匹配之间断开
其实这玩意先用sed处理下,把每个时间段的都合成一行,然后再用java处理会方便很
多的。。

【在 m***l 的大作中提到】
: 要实现下面的功能,可是一点儿idea都没有,该用什么类什么思路实现
: 恳请java前辈指点
: 万分感谢!!
: 将类似这样的一个比较长的.log文件解析开
: [18/09/2011 06:53:21:021 PM] ERROR Main 70: Running logger, watch out!
: java.lang.IndexOutOfBoundsException: Index: 99, Size: 0
: at java.util.ArrayList.RangeCheck(ArrayList.java:547)
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Running logger, watch out!
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Identity manager starting.
: 。。。。。。。

m***l
发帖数: 45
3
还请前辈指教
正则是什么意思? 两个匹配是什么意思?
sed处理?
万分感谢

【在 d**********x 的大作中提到】
: 正则呗。。两个匹配之间断开
: 其实这玩意先用sed处理下,把每个时间段的都合成一行,然后再用java处理会方便很
: 多的。。

h*******e
发帖数: 1377
4
最近写了两个 个c++的 parse xml 的小程序 大体思路是 每次读 进一个 字符 判
断[ 如果是的话 进入时间 tag函数 处理里面的时间 tag 之后 读入 后面的字符直
到】
理论上 正文 不会有 【字符。。碰到下一个[字符 开始新的一组时间函数。 关键你要
自己查一下生成这个log文件的程序 或者找相关人士 明确一下log 文件的语法。。
比如我parse xml就要压栈什么的。。这个log文件似乎用不到。
d**********x
发帖数: 4083
5
正则表达式啊。。

【在 m***l 的大作中提到】
: 还请前辈指教
: 正则是什么意思? 两个匹配是什么意思?
: sed处理?
: 万分感谢

p*****p
发帖数: 379
6
不需要正则吧
时间都是在[]里的,建一个HashMap>,key是时间,array
里放后面的就行了
while(true)里每次读一行从括号里解出时间字符串,扔到map里

【在 m***l 的大作中提到】
: 要实现下面的功能,可是一点儿idea都没有,该用什么类什么思路实现
: 恳请java前辈指点
: 万分感谢!!
: 将类似这样的一个比较长的.log文件解析开
: [18/09/2011 06:53:21:021 PM] ERROR Main 70: Running logger, watch out!
: java.lang.IndexOutOfBoundsException: Index: 99, Size: 0
: at java.util.ArrayList.RangeCheck(ArrayList.java:547)
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Running logger, watch out!
: [18/09/2011 06:53:21:021 PM] INFO Main 73: Identity manager starting.
: 。。。。。。。

m***l
发帖数: 45
7
这个要求用java
我不懂c++的能否参考到java里面?

【在 h*******e 的大作中提到】
: 最近写了两个 个c++的 parse xml 的小程序 大体思路是 每次读 进一个 字符 判
: 断[ 如果是的话 进入时间 tag函数 处理里面的时间 tag 之后 读入 后面的字符直
: 到】
: 理论上 正文 不会有 【字符。。碰到下一个[字符 开始新的一组时间函数。 关键你要
: 自己查一下生成这个log文件的程序 或者找相关人士 明确一下log 文件的语法。。
: 比如我parse xml就要压栈什么的。。这个log文件似乎用不到。

m***l
发帖数: 45
8
谢指点
请问如果不能用stream的话应该怎么读入呢?

array

【在 p*****p 的大作中提到】
: 不需要正则吧
: 时间都是在[]里的,建一个HashMap>,key是时间,array
: 里放后面的就行了
: while(true)里每次读一行从括号里解出时间字符串,扔到map里

m***l
发帖数: 45
9
还想请教第5条要求该如何理解和用什么途径实现比较好
非常感谢
p**r
发帖数: 5853
10
俺说下思路及考官意图,个人看法。
#1 绝对不一次性读入整个文件!!!!
这个是考你处理大文件的方法,
一次性读入,3行还行,如果3百万行,那就是坑爹
所以类似readline的方式,分行读入,但是不是只读1行!
【注意点】
读单项(不是单行!!!)的时候做一个判断,是否读到结尾了,因为不一定一行包括
了所有信息。
是否结尾标志,用regular expression判断,一旦读到第2个时间,结束,进入数据拆
分!
【可能会加分的,但是有点showoff,遇到考官装X的会起反效果。】
你可以在读文件前再做一个判断,文件小于类似10k,直接读文件,不然就分行读。
也就是说你知道如何处理大文件,但是对小文件也不扯淡。。
#2 必须用regular expression<正则>,要求#4里说得很清楚!!!!
正则表达式分离数据,必须学会,以后会用很多。
判断日期格式,有很多种表达式。
如果不懂,就先去研究一把,这个题目只是分离日期以及后面数据,算简单的。
#3 把数据分离成2部分就不说了,这个你肯定会。
#4 第5条要求的意思其实是为了cross platform等后期需要,
所以建议用xml(rss)或json等格式re-format数据,我个人建议用json,更精简。
1 (共1页)
进入JobHunting版参与讨论
相关主题
叹口气:刷题似乎更需要的是持久amazon 找电话号码题一问
问一个不知道算是软工还是C++的面试题攒人品&&求好运&&发面经:A的第一电
中缀转前缀表达式准备好好做做leetcode上的题
关于数学表达式解析和求值leetcode regular expression match的问题
dropbox 面经A 家两轮电话面试面经攒人品
简单的正则表达式的字符串匹配leetcode的valid number的考点在哪里呢?
Amazon 1rd Phone Interview questions请教下个sscanf正则表达式逗号隔开赋值的问题
Amazon 1st round interviewLeetcode 正则表达式那道题目的例子
相关话题的讨论汇总
话题: must话题: 解析话题: 文件话题: parse话题: log