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
最后一个要求我完全不知道该怎么理解,怎么实现
还请前辈指点 |
S******y 发帖数: 1123 | |
r*******e 发帖数: 7583 | 3 看起来像是文科生在问编程题
字符串解析没什么特别思路,上正则表达式
【在 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 | 4 要求用java
还请前辈指点
万分感谢
【在 S******y 的大作中提到】 : Using Python?
|
p******t 发帖数: 1598 | |
w*******2 发帖数: 6 | 6 +不能用stream把整个文件load到内存
这个要求有点自相矛盾。 用stream就是为了避免把文件整个load到内存。 |
e*****e 发帖数: 430 | 7 处理字符串肯定是python顺手啊。
【在 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 | 8 对的
明天deadline了
【在 p******t 的大作中提到】 : 上课作业?
|
m***l 发帖数: 45 | 9 前辈可是要求用java
python我更一点都不懂的
【在 e*****e 的大作中提到】 : 处理字符串肯定是python顺手啊。
|
m***l 发帖数: 45 | 10 原题要求
- 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
原题是这样的
我也理解的不太清楚
【在 w*******2 的大作中提到】 : +不能用stream把整个文件load到内存 : 这个要求有点自相矛盾。 用stream就是为了避免把文件整个load到内存。
|
|
|
e*****e 发帖数: 430 | 11 python很简单啊。
【在 m***l 的大作中提到】 : 前辈可是要求用java : python我更一点都不懂的
|
m***l 发帖数: 45 | 12 唉
可是要求用java,python我一点都不会的
【在 e*****e 的大作中提到】 : python很简单啊。
|
e*****e 发帖数: 430 | 13 说个大概思路啊。
一行一行读,每次多读一行。如果下一行的开始不是[,一直接着读。一直读到下一行
开始是[
timestamp的标志是[]里的内容,用regular expression匹配一下就出来了。剩下的就
是非timestamp了。
【在 m***l 的大作中提到】 : 唉 : 可是要求用java,python我一点都不会的
|
m***l 发帖数: 45 | 14 请问用regular expression匹配一下是什么意思呢?
感谢
【在 e*****e 的大作中提到】 : 说个大概思路啊。 : 一行一行读,每次多读一行。如果下一行的开始不是[,一直接着读。一直读到下一行 : 开始是[ : timestamp的标志是[]里的内容,用regular expression匹配一下就出来了。剩下的就 : 是非timestamp了。
|
g*****g 发帖数: 34805 | 15 Java用BufferedReader.readLine, regex,或者String.indexOf找都行。 |
a******o 发帖数: 16625 | |
m***l 发帖数: 45 | 17 请问这几个方法是不会load entire file in memory的吧
谢谢指点
【在 g*****g 的大作中提到】 : Java用BufferedReader.readLine, regex,或者String.indexOf找都行。
|
m***l 发帖数: 45 | 18 谢谢提醒
时间紧急,希望能给点idea感谢
【在 a******o 的大作中提到】 : 这种作业做不出,读完也找不到工作。
|
m***a 发帖数: 66 | |
a*****3 发帖数: 10373 | 20 下次的作业前找个bf或lg
【在 m***a 的大作中提到】 : 下次的作业怎么办匿
|
|
|
a******o 发帖数: 16625 | 21 没人知道所有的java lib,要学会用google,比如这个问题
先放狗 java read file line by line
http://stackoverflow.com/questions/5868369/how-to-read-a-large-
然后再放狗 java regular expression
.....
把几段code 对比一下,基本就成了。
【在 m***l 的大作中提到】 : 谢谢提醒 : 时间紧急,希望能给点idea感谢
|
g*****g 发帖数: 34805 | 22 这个水平男的赶紧quit,女的赶紧找码农男友吧。 |
d****y 发帖数: 910 | 23 妹子,你不适合做IT纯技术方面的工作。如果真搞IT的话,还是不要搞纯技术的,因为
你玩不转的,也玩不到好手级别。
bless |
s*****r 发帖数: 43070 | 24 你太高估女码农的实力了
【在 g*****g 的大作中提到】 : 这个水平男的赶紧quit,女的赶紧找码农男友吧。
|
s*****r 发帖数: 43070 | |
B***i 发帖数: 724 | |
m***l 发帖数: 45 | 27 非常感谢
提示的非常有用,
现在明白点这个题目并且大致清楚应该用哪个类了
我试着写一下,希望能运行起来
感谢!!
【在 a******o 的大作中提到】 : 没人知道所有的java lib,要学会用google,比如这个问题 : 先放狗 java read file line by line : http://stackoverflow.com/questions/5868369/how-to-read-a-large- : 然后再放狗 java regular expression : ..... : 把几段code 对比一下,基本就成了。
|
m***l 发帖数: 45 | 28 还想请教第5条要求该如何理解和用什么途径实现比较好
非常感谢 |
p******t 发帖数: 1598 | 29 我真心劝你放弃,对你来说太难了。
【在 m***l 的大作中提到】 : 还想请教第5条要求该如何理解和用什么途径实现比较好 : 非常感谢
|
m***l 发帖数: 45 | 30 我都快写完了
【在 p******t 的大作中提到】 : 我真心劝你放弃,对你来说太难了。
|
|
|
t*********3 发帖数: 4304 | 31 好像是说你的程序是提供输入参数的分析方式吧。
例如你现在解析用的分隔符是[], 但是也可能是()或者其他方式。这样就是要求你不
能把[]做成硬编码方式,应该是外部变量方式。
【在 m***l 的大作中提到】 : 还想请教第5条要求该如何理解和用什么途径实现比较好 : 非常感谢
|
m***l 发帖数: 45 | 32 非常感谢
那这个意思是要
1.分析不同日期形式的表达方式:
比如:1900-01-01 或者 2007/08/13 或者 1900.01.01 或者 1900 01 01
2.还是要分析可能是[]或者():这个括注日期的符号很随意的呀
3.还是要求把parse开的timestamp和后面的内容存放在 比如ArrayList里面以便可以比
如再存入一个格式更清晰的log文件 或者 数据库 或者 excel ....等各种形式?
就是我还是不太理解这个 Must be configurable to parse log files in slightly
different format是什么意思? 以及我解析出来的timestamp和后面的内容应该怎么存
放,加上标号存成另外一个log文件不知是否合适
感谢
【在 t*********3 的大作中提到】 : 好像是说你的程序是提供输入参数的分析方式吧。 : 例如你现在解析用的分隔符是[], 但是也可能是()或者其他方式。这样就是要求你不 : 能把[]做成硬编码方式,应该是外部变量方式。
|