黑马程序员技术交流社区
标题: StringBufferDemo中的异常问题 [打印本页]
作者: 沈子豪 时间: 2013-3-15 20:49
标题: StringBufferDemo中的异常问题
本帖最后由 沈子豪 于 2013-3-15 22:17 编辑
public class StringBufferDemo{
public static void main(String[] args) {
// 方式1
int x = 10;
Integer i = new Integer(x);
System.out.println("i:" + i);
// 方式2
//String s = "10";
String s = "a";
Integer ii = new Integer(s);
System.out.println("ii:" + ii);
}
}
运行结果如下Exception in thread "main" java.lang.NumberFormatException: For input string: "a"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.<init>(Integer.java:677)
at test1_1.StringBufferDemo.main(StringBufferDemo.java:13)
我查了下异常显示如下 public Integer(String s) throwsNumberFormatException {
this.value = parseInt(s, 10);
},哪位大神能解释下?
作者: tianyun 时间: 2013-3-15 20:54
当函数参数无法转换为数字型时,该函数parseInt()会抛出异常,解决方法,抛出运行时异常或用try catch处理。
作者: 黑马李超 时间: 2013-3-15 21:00
在使用构造方法Integer(String s)时,使用了与parseInt()相同的方式将该字符串转换为int值。因为不知道String中是否包含可解析的整数,所以会抛出NumberFormatException。
作者: jdzzlf 时间: 2013-3-15 21:02
首先你这个类出现了“数字转换异常”。为什么呢?因为你定义的s是String变量,然后你直接加入Integer中。你应该先转换一下,然后打印出来。
字符串转换为数字的方法如:int aa = Integer.paresInt(s)。这样就不回报错了,希望能够解决你的问题。
代码如下:- public class Main
- {
- public static void main(String[] args)
- {
- String aaString = "97";
- int a = Integer.parseInt(aaString);
- System.out.print(a);
- }
- }
复制代码
作者: 刘辉 时间: 2013-3-15 21:14
当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
Integer(String s):是要求被转换的字符串是全部由数字字符组成的字符串.所以会出现这种情况
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |