A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李深山 中级黑马   /  2012-3-20 00:23  /  1773 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

System.out.println(Long.valueOf("a"));
Exception in thread "main" java.lang.NumberFormatException: For input string: "a"
明明是可以的,以下是API说明,
public static Long valueOf(String s)
                    throws NumberFormatException返回保持指定 String 的值的 Long 对象。该参数被解释为表示一个有符号的十进制 long,该值与用该参数作为参数的 parseLong(java.lang.String) 方法得到的值非常相似。结果是表示由字符串指定的整数值的 Long 对象。

6 个回复

倒序浏览
s - 要解析的字符串,必须要是转换的数字的字符串形式。
回复 使用道具 举报
有些字符串无法直接转成整型。
回复 使用道具 举报
这是数值格式转换异常, 只有数值型的字符串才能转换成整形数据, 比如"34"可以转换成相应的整数,,但是"a"这样是不行的啊
回复 使用道具 举报
API最后那句才是关键呀:
抛出:
NumberFormatException - 如果不能将字符串解析为 long。

你现在的"a" 就是--- “不能将字符串解析为 long”。
回复 使用道具 举报
这个和char的打印不同,char的数值转换打印时,是将字符的ASCII码打印出来,
这里的valueOf只能将一个数字形式存在的字符串转换成数字。也就是只能转换“123346567”这样的,
对于含有数字以外的字符,比如“abc”、“123234bcd”无法转换。

另附:
NumberFormatException (API文档的的解释是:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。 )

回复 使用道具 举报
Long valueOf(String s)  中的参数只能是由数字组成的字符串,不可以包含字母或其他字符的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马