多线程处理的话,谁有例子
对我有用[0]丢个板砖[0]引用举报管理TOP回复次数:4
abstruct
(该用户不懒,是不想设置昵称)等 级:
#1楼 得分:40回复于:2012-04-10 15:21:58日志处理是要如何处理?提问的时候也请告知明白点吧
对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:唐僧师徒谁最适合做销售的答案
QQ785468931
(QQ785468931)等 级: #2楼 得分:0回复于:2012-05-09 16:36:22<158>May 7 07:34:48 tcpproxy[19476]: 220.181.94.232:58390 [07/May/2012:07:34:47.994] http-in default_server/cache1 116/0/0/3/119 404 1524 - - ---- 54/54/10/7/0 0/0 {22kk.too9.com} GET /dlmt/index.html?sid=7159 HTTP/1.1<158>May 7 07:56:37 tcpproxy[13595]: 220.181.124.180:55674 [07/May/2012:07:56:37.080] http-in default_server/cache2 1/0/0/4/5 404 1524 - - ---- 70/70/9/2/0 0/0 {22kk.too9.com} GET /yixuanf/index.html?sid=1860 HTTP/1.1
对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:国内顶级IT公司面试题,答案
QQ785468931
(QQ785468931)等 级: #3楼 得分:0回复于:2012-05-09 16:40:14就是这种格式的文件,统计出同一个域名被不同地方的人访问了多少次,用正则取出ip跟域名,相同的ip追加1,~
对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:### Java学习方法的一点个人见解-老紫竹
QQ785468931
(QQ785468931)等 级: #4楼 得分:0回复于:2012-05-09 16:40:55然后再排序~
对我有用[0]丢个板砖[0]引用举报管理TOP回复次数:4
abstruct
(该用户不懒,是不想设置昵称)等 级:
#1楼 得分:40回复于:2012-04-10 15:21:58日志处理是要如何处理?提问的时候也请告知明白点吧
对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:唐僧师徒谁最适合做销售的答案
QQ785468931
(QQ785468931)等 级: #2楼 得分:0回复于:2012-05-09 16:36:22<158>May 7 07:34:48 tcpproxy[19476]: 220.181.94.232:58390 [07/May/2012:07:34:47.994] http-in default_server/cache1 116/0/0/3/119 404 1524 - - ---- 54/54/10/7/0 0/0 {22kk.too9.com} GET /dlmt/index.html?sid=7159 HTTP/1.1<158>May 7 07:56:37 tcpproxy[13595]: 220.181.124.180:55674 [07/May/2012:07:56:37.080] http-in default_server/cache2 1/0/0/4/5 404 1524 - - ---- 70/70/9/2/0 0/0 {22kk.too9.com} GET /yixuanf/index.html?sid=1860 HTTP/1.1
对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:国内顶级IT公司面试题,答案
QQ785468931
(QQ785468931)等 级: #3楼 得分:0回复于:2012-05-09 16:40:14就是这种格式的文件,统计出同一个域名被不同地方的人访问了多少次,用正则取出ip跟域名,相同的ip追加1,~
对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:### Java学习方法的一点个人见解-老紫竹
QQ785468931
(QQ785468931)等 级: #4楼 得分:0回复于:2012-05-09 16:40:55然后再排序~
for(int i=0;i<temp2.length;i++){
System.out.println(temp2[3]);
}
这样的话为什么数组索引会越界
会不会是因为temp2.length就是为0 呢
temp2 = temp.split(":");我定义了它的长度他还是越界啊
我改用 StringTokenizer截取了~
好比 String[] temp2 = null;temp2 = temp.split(":");
干脆就这么写就可以了String[] temp2 = temp.split(":");
一行一行读出来
放入Set set = new TreeSet(new Comparator(){
@Override
public int compare(Object o1;Object o2){
//逻辑
}
});
然后compare就是你要排序的规则了。
map是key/value映射
list是有序的
=====
我看网上说~~
用TreeMap可以实现排序。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
public class Test{ public static void main(String[] args) throws IOException {
Set<String> set = new TreeSet<String>(new Comparator<String>() {
public int compare(String arg0, String arg1) {
String[] key1 = arg0.split("\\.");
String[] key2 = arg1.split("\\.");
for (int i = 0; i < key1.length; i++) {
if (Integer.parseInt(key1[i]) == Integer.parseInt(key2[i])) {
continue;
}
if (Integer.parseInt(key1[i]) > Integer.parseInt(key2[i])) {
return 1;
}
if (Integer.parseInt(key1[i]) < Integer.parseInt(key2[i])) {
return -1;
}
}
return 0;
}
}); BufferedReader br = new BufferedReader(new FileReader("test.txt"));
String line = null;
while ((line = br.readLine()) != null) {
set.add(line.trim());
} System.out.println(set);
}
}本来不想重写,找到以前的代码,改了改。把你数据放到文件中。改一下文件名和路径得到排好序的set了。
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.parseInt(Integer.java:499)
at com.test.Test$1.compare(Test.java:16)
at com.test.Test$1.compare(Test.java:1)
at java.util.TreeMap.put(TreeMap.java:530)
at java.util.TreeSet.add(TreeSet.java:238)
at com.test.Test.main(Test.java:33)
String[] key2 = arg1.split("\\.");
===
这两行是什么意思?
String[] key1 = arg0.split("\\.");
String[] key2 = arg1.split("\\.");
只是把ip地址分成4个字符串。
124.226.113.176=3
124.226.113.178=2
这是你的数据?
String line = null;
while ((line = br.readLine()) != null) {
if(!"".equals(line)){
set.add(line.trim().split("=")[0]);
}
}
网上有例子,但我看不太懂~
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 对字符集中字符出现的次数继续排序。 * * @author 赵学庆 <A href="http://www.java2000.net/">www.java2000.net</A> */public class T { public static void main(String args[]) { String str = "12345678hfdjkslahfkj932189oiefsjkar94werfdsf"; Map<Character, KeyValue> map = new HashMap<Character, KeyValue>(); char c; KeyValue kv = null; for (int i = 0; i < str.length(); i++) { c = str.charAt(i); kv = map.get(c); if (kv == null) { kv = new KeyValue(); kv.ch = c; kv.count = 1; map.put(c, kv); } else { kv.count++; } } List<KeyValue> list = new ArrayList<KeyValue>(map.values()); Collections.sort(list); for (KeyValue o : list) { System.out.println(o.ch + "=" + o.count); } } } class KeyValue implements Comparable { public int compareTo(Object obj) { if (obj instanceof KeyValue) { KeyValue kv = (KeyValue) obj; return kv.count - this.count; } return -1; } char ch; int count; }
shu.split(" : ") 就是将这个字符串 以冒号为 分隔符 分成一个数组
[0] 就是 huodsa [1] 就是 hhhhh
at java.util.StringTokenizer.nextToken(StringTokenizer.java:332)
at com.test.TextConvertor3.main(TextConvertor3.java:81)