网易2011校园招聘笔试题-IP地址提取并统计次数

  统计日志中符合(GET ip 请求数)这个条件的请求总数。

  这道题考的其实就是正则表达式的知识点,笔试的是时候时间太紧了,细节没写对,杯具。。。

  回来自己写了下,发出来纪念下,呵呵!

package test1; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern;
public class Wang {
 	//  String regextIp = "GET//s(([1]{0,1}[0-9]{1,2})|([2]{1}[0-5]{2}))//.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-5]{2}))//.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-5]{2}))//.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-5]{2}))//s[0-9]{1,}";//正则表达式 ,存在bug
    	 String regextIp = "GET\\s(([1]{0,1}[0-9]{1,2})|([2]{1}[0-4]{1}[0-9]{1})|([2][5]{1}[0-5]{1}))\\.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-4]{1}[0-9]{1})|([2][5]{1}[0-5]{1}))\\.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-4]{1}[0-9]{1})|([2][5]{1}[0-5]{1}))\\.(([1]{0,1}[0-9]{1,2})|([2]{1}[0-4]{1}[0-9]{1})|([2][5]{1}[0-5]{1}))\\s[0-9]{1,}";// 修正后的正则表达式

     	Pattern p = Pattern.compile(regextIp); //这一步很耗时,可以申明为全局变量

  	public static void main(String[] args)  { 
		String request = "GET 255.250.255.125 12";
		Matcher m = p.matcher(request); 
		int requestSum = 0; 
 		if (m.matches()) { 
			String[] str = request.split(" ");  
			requestSum += Integer.parseInt(str[2]); 
	 	} 
		System.out.println(requestSum);
	 }
 }



 
 
 

其中要点是ip地址的正则表达式的写法:ip地址是小于255的。

原题是从日志文件中读取,这里没有!

注意:正则表达式已修改,以前的有bug。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值