站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题求助一个问题 ?

求助一个问题 ?

摘要: 求助一个问题 ?


查询IP地址: select 地区 from ip表 where 用户ip>起始IP and 用户ip<结束ip
通过这条sql语句就可以查询出用户ip所对应的地区结果。由于用户ip与起始ip和结束ip的比较属于字符串比较,如果用户ip为9.1.1.1,那么它与61.54.231.245比较的结果就是前者大于后者,因为用户ip的第一个字符“9”大于61.54.231.245中的第一个字符“6”。
我们该怎样让它返回正确的结果。思路是 将9.1.1.1变化成009.001.001.001后与061.054.231.245进行比较就可以了,可以用正则表达式的方法来解决。
那么该怎样解决呢? 请高手快来啊。



焦急等待中~~~~~~~~~



JavaScript版本:
<script>
var str="11.1.111.11";
str=str.replace(/(^|/.)(/d)(/.|$)/g,"$100$2$3");
str=str.replace(/(^|/.)(/d)(/.|$)/g,"$100$2$3");
str=str.replace(/(^|/.)(/d{2})(/.|$)/g,"$10$2$3");
str=str.replace(/(^|/.)(/d{2})(/.|$)/g,"$10$2$3");
alert(str);
</script>

Java版本:
String str="11.1.111.11";
str=str.replaceAll("(^|//.)(//d)(//.|$)","$100$2$3");
str=str.replaceAll("(^|//.)(//d)(//.|$)","$100$2$3");
str=str.replaceAll("(^|//.)(//d{2})(//.|$)","$10$2$3");
str=str.replaceAll("(^|//.)(//d{2})(//.|$)","$10$2$3");
System.out.println(str);



有没有更简单的方法?


更简单的正则应该没有了


还能再简化一下
<script>
var str="11.1.111.11";
str=str.replace(/(/d)(/.|$)/g,"00$1$2");
str=str.replace(/(/d{2})(/.|$)/g,"0$1$2");
alert(str);
</script>

Java版本:
String str="11.1.111.11";
str=str.replaceAll("(//d)(//.|$)","00$1$2");
str=str.replaceAll("(//d{2})(//.|$)","0$1$2");
System.out.println(str);


不行,上面的简化版本有BUG,还是第一种吧


老大,能不能把你的QQ号告诉我啊,以后不懂的问题直接问你得了


-_-''


19666125


$100是怎么来的?
lip009把你的QQ号告诉我啊,以后不懂的问题直接问你得了


已经告诉你了
$100是$1和00


↑返回目录
前一篇: 多态问题
后一篇: 不明白它的输出结果.