String转Integer报错 本帖最后由 fank243 于 2013-04-06 17:55:47 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 NumberFormatException: For input string: "convertToInteger"转换要求是纯数字 那该怎么样将String转为Integer呢? 楼主你希望将“convertToInteger”这个字符串转换成什么数字?1还是2还是3还是4? 转为int类型即可。原题是这样的:声明一个ArrayList<Integer> list = new ArrayList<Integer>();但是需要在这个集合里面添加String对象。所以需要将String装换为Integer对象后,再添加进去。 这个不可能的吧,String转换为Integer对象 那还不简单,自己写个方法..............public int convert(String value) { return 1;} String s="1"; 问题出在这里,这里的值要一个数字才行// Integer integer = Integer.parseInt(s);//或者Integer integer = Integer.valueOf(s);System.out.println(integer); jdk里关于parseInt方法的原话将字符串参数作为有符号的十进制整数进行分析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。 数字才能转,字符串要转为数字可以用hashcode() 调用此方法时要 注意 传入的 s是否 可以解释为一个字符串如:"123","0xFF"s="convertToInteger"; //这个字串英文意思 是“转换为整数”, 可是 它不能解释成 数字吧Integer.valueOf(s);//执行到这步,当然会抛出异常当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。 转换规则可以自定。只是给你我对转换数据的封装,仅借鉴:// 为空时,返回0.0 if (null == value) { result = 0.0d; // 布尔值,返回1 或 0 } else if (isBoolean(value)) { result = ((Boolean)value ? 1 : 0) + 0d; // 字符型,返回ASCII码 } else if (isChar(value)) { result = ((Character)value) + 0d; // 数值类型,直接返回取值 } else if (isNumeric(value)) { result = Double.parseDouble(value.toString()); // 其它类型,强转.错误返回0.0 } else if (isDateTime(value)) { result = ((value instanceof Date) ? ((Date)value).getTime() : ((Calendar)value).getTimeInMillis()) + 0d; }所有的is类型,都是另一个方法进行判断的。如:value instanceof Date这个字符串即不会报错了,但会返回0,字符串的处理没有发出来,反正就是按规则转换不出来的,一律返回0。这个只是类似于的处理。至于转换规则,是返回0还是-1还是其他的,你自己定就可以了。 =============================我说了,字符串处理没有发出来,自己考虑转换。继续上面的。} else if (isString(value)) {// CODE} 你怎么能把那么长一个字符串转化成int呢??转换的方法是parseInt();valueOf()是把其他类型转换成字符串的。 看下JDK的帮助文档中。ValueOF这个方法。自己学会的最重要。 你想把一个字符串转换成整数,应该是“123” 或者“478”等等纯数字的字符串,试想“abc”这种字符串怎样转换成数字呢? 自己写个函数将每个字母的ascii码一个接一个拼一起组成数字 String好像不能直接转Integer的,Char好像可以的,要么先转成Char[],再转成Integer[] 简单,直接把String转化为char[],然后求每个字符的hashcode,然后放到整形的list里面不就可以了! 你可以先把字符串拆分成一个char数组,这样的话就可以把每一个字符顺利的转换成Integer对象。之后把每个字符存放到集合中。不知道题目的要求是不是这个意思。你可以尝试一下。 我们知道,字符与ASCII之间是一一对应的,而ASCII的表示形式则是数字,所以,要想把字符串转换为数字,首先将其转换为字符数组,再将字符数组下的每一个元素转换为ASCII。不知道楼主是不是这个意思 ArrayList<Integer> list = new ArrayList<Integer>(); ((List)list).add("convertToInteger"); System.out.println(list); 关于int和byte的问题 哪位能帮我解决这个问题啊,谢谢! about jdk源码 到底是学java,还是学C#,还是两者都学?请指点。 关于安装netbeans的问题 java初学者:有关applet的问题 用JAVA 读BMP文件 高分求答案!! JBuilder6的s/n,谁能告诉我? 关于char类型与string类型的问题 eclipse 不能再左上角显示图片 BigDecimal数据乘0后的数据为什么是以科学计数法的形式显示?急求解
转换要求是纯数字
转为int类型即可。
原题是这样的:
声明一个ArrayList<Integer> list = new ArrayList<Integer>();
但是需要在这个集合里面添加String对象。
所以需要将String装换为Integer对象后,再添加进去。
那还不简单,自己写个方法..............public int convert(String value) {
return 1;
}
// Integer integer = Integer.parseInt(s);
//或者
Integer integer = Integer.valueOf(s);
System.out.println(integer);
将字符串参数作为有符号的十进制整数进行分析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。
s="convertToInteger"; //这个字串英文意思 是“转换为整数”, 可是 它不能解释成 数字吧
Integer.valueOf(s);//执行到这步,当然会抛出异常
当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
// 为空时,返回0.0
if (null == value) {
result = 0.0d;
// 布尔值,返回1 或 0
} else if (isBoolean(value)) {
result = ((Boolean)value ? 1 : 0) + 0d;
// 字符型,返回ASCII码
} else if (isChar(value)) {
result = ((Character)value) + 0d;
// 数值类型,直接返回取值
} else if (isNumeric(value)) {
result = Double.parseDouble(value.toString());
// 其它类型,强转.错误返回0.0
} else if (isDateTime(value)) {
result = ((value instanceof Date) ? ((Date)value).getTime() : ((Calendar)value).getTimeInMillis()) + 0d;
}所有的is类型,都是另一个方法进行判断的。
如:value instanceof Date
这个字符串即不会报错了,但会返回0,字符串的处理没有发出来,反正就是按规则转换不出来的,一律返回0。
这个只是类似于的处理。至于转换规则,是返回0还是-1还是其他的,你自己定就可以了。
=============================
我说了,字符串处理没有发出来,自己考虑转换。
继续上面的。
} else if (isString(value)) {
// CODE
}
自己写个函数将每个字母的ascii码一个接一个拼一起组成数字
所以,要想把字符串转换为数字,首先将其转换为字符数组,
再将字符数组下的每一个元素转换为ASCII。
不知道楼主是不是这个意思
((List)list).add("convertToInteger");
System.out.println(list);