把IP转换成数字型的问题!!

shaoml 2007-11-13 12:14:52
我转换时用
String[] ipqi_ary=clientIP.Split('.');

请问clientIP.Split是在哪个包下的?用引入什么包吗?

总是报错:
找不到符号
符号: 变量 clientIP
位置: 类 org.apache.jsp.shi_jsp
String[] ipqi_ary=clientIP.Split('.');
...全文
216 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jr_zhang 2007-11-13
  • 打赏
  • 举报
回复
单引号改双引号:


String[] ipqi_ary=clientIP.Split(".");
olivesoup 2007-11-13
  • 打赏
  • 举报
回复
从jdk1.4开始,String类自带方法
olivesoup 2007-11-13
  • 打赏
  • 举报
回复
是java.lang下的,什么也不用引
shaoml 2007-11-13
  • 打赏
  • 举报
回复
好了,非常感谢!是IP后面有空格。
我有两个表, 表 A 有三个字段,IPQI,IPMO,DIZHI(包括国家、省、市、地区)。
表 B 有个字段表示 登陆过的IP值。IPDENG
我现在想统计每个省里一共有多少人登陆过。 IP值转换后 可以 用 IPQI < IPDENG < IPMO 这种方法判断 登陆过的IP在某个IP地址范围内吗? 从而统计出各个省的总登陆数??
请高手指点下!
liusx0113 2007-11-13
  • 打赏
  • 举报
回复

java.lang.NumberFormatException: For input string: "0 "

说你的这个String类型参数不能转换成Integer类型。应该是你的: "0 " 里面有空格的问题。

请用 String[] ipqi_ary=ipqi.split( "\\. ");
int tmp_ipqi=Integer.parseInt(ipqi_ary[0].trim())*10*10*10;
tmp_ipqi+=Integer.parseInt(ipqi_ary[1].trim())*10*10;
tmp_ipqi+=Integer.parseInt(ipqi_ary[2].trim())*10;
tmp_ipqi+=Integer.parseInt(ipqi_ary[3].trim());

String 的 trim 方法可以去掉字符串前后的空格。

看你的程序应该是ip址后面加有空格造成的。
shaoml 2007-11-13
  • 打赏
  • 举报
回复
为什么 我用 String ipqi=rs.getString(1);
然后输出 ipqi,结果是IP地址,
0.0.0.0
1.0.0.0
2.0.0.0
3.0.0.0
4.0.0.0
4.11.0.0
4.12.0.0
4.19.78.0
4.19.79.0
4.19.79.64
而 经过
String[] ipqi_ary=ipqi.split("\\.");
int tmp_ipqi=Integer.parseInt(ipqi_ary[0])*10*10*10;
tmp_ipqi+=Integer.parseInt(ipqi_ary[1])*10*10;
tmp_ipqi+=Integer.parseInt(ipqi_ary[2])*10;
tmp_ipqi+=Integer.parseInt(ipqi_ary[3]);
却又 报 java.lang.NumberFormatException: For input string: "0 " 这种错呢?
这到底怎么转换啊? 头都大了!!!

如果直接给ipqi 赋个IP值则可以转化为整型。。。。。
shaoml 2007-11-13
  • 打赏
  • 举报
回复
OK 谢谢!
mazzystar0 2007-11-13
  • 打赏
  • 举报
回复
        String ip = "192.168.1.16";
String[] s = ip.split("\\.");
int sum = Integer.parseInt(s[0]) * 10 * 10 * 10;
System.out.println(sum);
sum += Integer.parseInt(s[1]) * 10 * 10;
System.out.println(sum);
sum += Integer.parseInt(s[2]) * 10;
System.out.println(sum);
sum += Integer.parseInt(s[3]);
System.out.println(sum);


直接这么写不行吗
shaoml 2007-11-13
  • 打赏
  • 举报
回复
谢谢,我晕,又有错。。。。

找不到符号
符号: 变量 Convert
位置: 类 org.apache.jsp.shi_jsp
int tmp_ipqi=Convert.ToInt32(ipqi_ary[0])*256*256*256+Convert.ToInt32(ipqi_ary[1])*256*256+Convert.ToInt32(ipqi_ary[2])*2
jr_zhang 2007-11-13
  • 打赏
  • 举报
回复
晕,真是败给你啦!

注意这个提示:Split(java.lang.String)

"S"应该是小写的。

String[] ipqi_ary=ipqi.split(".");
liusx0113 2007-11-13
  • 打赏
  • 举报
回复


String[] ipqi_ary=ipqi.split("\\.");

split 方法名第一个字母s小写。
shaoml 2007-11-13
  • 打赏
  • 举报
回复
找不到符号
符号: 方法 Split(java.lang.String)
位置: 类 java.lang.String
String[] ipqi_ary=ipqi.Split(".");
shaoml 2007-11-13
  • 打赏
  • 举报
回复
在JSP页面中直接写的
<%.... while(rs.next()){ %>

<% String ipqi=rs.getString(1);
String ipmo=rs.getString(2);
String difang=rs.getString(3);

String[] ipqi_ary=ipqi.Split("\\.");
int tmp_ipqi=Convert.ToInt32(ipqi_ary[0])*256*256*256+Convert.ToInt32(ipqi_ary[1])*256*256+Convert.ToInt32

(ipqi_ary[2])*256+Convert.ToInt32(ipqi_ary[3]);

%>

还是不行
yangxiao_jiang 2007-11-13
  • 打赏
  • 举报
回复
String[] ipqi_ary=clientIP.Split("\\.");
jr_zhang 2007-11-13
  • 打赏
  • 举报
回复
确定clientIP有值没?
最好把你的源码贴出来。
shaoml 2007-11-13
  • 打赏
  • 举报
回复
还是不行,报同样的错!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧