request.getParameter()得到的数值为'6',如何转换成int型
request.getParameter()得到的数值为'6',使用了Integer.parseInt()方法不能转换成int,请教还有何方法能转化成int 问题点数:20、回复次数:23Top
1 楼hbwhwang(【生病了,好好休息中...】)回复于 2006-08-06 19:26:30 得分 0
使用了Integer.parseInt()方法不能转换成int????Top
2 楼Siela(伱儅硪寔倁己硪看嘚噵 硪儅伱寔一笙偂途)回复于 2006-08-06 20:03:11 得分 0
int i = new Integer(i).parseInt(request.getParameter("String"));Top
3 楼kevinliuu()回复于 2006-08-06 20:05:08 得分 0
倒~
楼上的Top
4 楼xfxf521(天使也一样)回复于 2006-08-06 20:06:31 得分 0
int i=Integer.parseInt(request.getParameter())Top
5 楼baokuijian(阿包)回复于 2006-08-06 20:28:55 得分 0
这应该很简单啊,Integer.parseInt()的参数必须是String类型的,而这里是char类型,当然不行啊!应该是:int i=Integer.parseInt(“”+request.getParameter())就可以了Top
6 楼hbwhwang(【生病了,好好休息中...】)回复于 2006-08-06 20:30:53 得分 0
baokuijian(阿包):
request.getParameter()得到的本来就是StringTop
7 楼feigme(泡沫微笑。o 0)回复于 2006-08-06 20:44:02 得分 0
int i=Integer.parseInt(request.getParameter());
Top
8 楼huihui0103()回复于 2006-08-06 20:45:50 得分 0
来晚了哦Top
9 楼saiche05(赛车)回复于 2006-08-07 08:54:09 得分 20
标准做法:
int i=0;
try {i=Integer.parseInt(request.getParameter());
}
catch(NumberFormatException e)
{//i=0;
}Top
10 楼fishyqd(小鱼儿-刚出来混)回复于 2006-08-07 11:29:45 得分 0
同意楼上Top
11 楼cniva(cniva)回复于 2006-08-07 11:49:21 得分 0
原来是传过来的是'6'而不是6,谢谢大家了
不过用int i=Integer.parseInt(""+request.getParameter());的话报这个错误
java.lang.NumberFormatException: For input string: "null"
值为:
s=7
i=0
怎样才能转换成String呢
Top
12 楼WxmJun(胡扯之)回复于 2006-08-07 13:32:43 得分 0
String s=request.getParameter();
if(s!=null && s 是数值){
i=Integer.parseInt(s);
}Top
13 楼mosquitoxh((IT,中间件,架构)http://it.paiming.org/bbs)回复于 2006-08-07 14:22:58 得分 0
int i=Integer.parseInt(request.getParameter());Top
14 楼software_apprentice()回复于 2006-08-07 15:57:40 得分 0
根本没有request.getParameter()这个方法。。。getParameter必须放个String做为参数的楼主是不是搞错了Top
15 楼arbiter(同济流氓)回复于 2006-08-07 16:59:48 得分 0
标准做法:
int i=0;
try {i=Integer.parseInt(request.getParameter());
}
catch(NumberFormatException e)
{//i=0;
}
NumberFormatException 属于非检查性异常,就是说不需要你自己去try catch.
并且即使一旦出现这种异常,也认为是设计错误,是程序员的责任,是可以避免的,例如在把参数传进你的方法前,先判断参数是否为数字。如果因为不是数字而产生了NumberFormatException,说明你程序的CHECK PARAMETER的工作没做好,是你的责任。Top
16 楼Areslp(努力ING)回复于 2006-08-07 17:27:47 得分 0
request.getParameter()出来是'6'的话,这是个string,先处理这个string变成6,再Integer.parseInt就行了吧Top
17 楼langke93(冬会初雪)回复于 2006-08-07 18:58:05 得分 0
int i=Integer.parseInt(request.getParameter("parm").toString());Top
18 楼go_now(煅剑)回复于 2006-08-07 21:54:22 得分 0
int i=(int)request.getParameter("parm")Top
19 楼yunzhongshu()回复于 2006-08-08 09:43:16 得分 0
Top
langke93(冬会初雪) ( ) 信誉:100 2006-8-7 18:58:06 得分: 0
int i=Integer.parseInt(request.getParameter("parm").toString());
----------------------------------------------------------
我也觉得应该这样(如果得到的不是String类型的话)
Top
20 楼luyan0711(凡人)回复于 2006-08-08 10:14:06 得分 0
int i=Integer.parseInt(request.getParameter()+"");Top
21 楼lye2000000_super(我自横刀香甜笑)回复于 2006-08-08 11:57:26 得分 0
现判断是否为空,再用正则表达式检查一下是否为数字。然后再解析。Top
22 楼wuxing2006(金宝)回复于 2006-08-08 12:29:52 得分 0
Integer.parseInt(request.getParameter("id").ToString().Replace("'",""));Top
23 楼PowerJason()回复于 2006-08-08 12:39:42 得分 0
String temp = request.getParameter("id");
int id = 0;
if(temp != null && !temp.equals("")){
id = Integer.parseInt(temp);
}
如果你还想验证传过来的参数是int.
则可以通过此来验证;不建议通过异常来做判断;
/**
* Check whether the string is an integer.
* @param s
* @return boolean
* @author Jason Cheng
*/
public static final boolean isInteger(final String str) {
if (isEmpty(str)) {
return false;
}
for (int x = 0; x < str.length(); x++) {
final char c = str.charAt(x);
/* negative */
if (x == 0 && (c == '-')) {
continue;
}
/* 0 - 9 */
if ((c >= '0') && (c <= '9')) {
continue;
}
/* invalid */
return false;
}
/* valid */
return true;
}
/**
* Check whether the string is not empty.
* @param str
* @return boolean
* @author Jason Cheng
*/
public static final boolean isEmpty(String str) {
return (str == null) ? true : (str.trim().length() == 0);
}Top




