日期:2014-05-20  浏览次数:20816 次

java 小问题,求解。。。
public class Test{
public static void main(String [] args){
String str=new String("a");
System.out.println(Long.valueOf(str));
}
}


这样数据为什么转换不了?

本人刚学java,望各位大牛指教。。。

------解决方案--------------------
“a”是string 类型
而且 a 转 long 也要先转成 ascll码才能转么
------解决方案--------------------
Long.parseLong
------解决方案--------------------
Long是把"1244"这种字符串型的数字转换成数字。你那个是字母,所以会报错。
------解决方案--------------------
public class Test{
public static void main(String [] args){
//String str=new String("a");
char c = 'a' ;
System.out.println(Long.valueOf(c)); //97
}
}

------解决方案--------------------
String str=new String("a");
//char c = 'a' ;
System.out.println(Long.parseLong(str));

会报异常的,因为str不是数字值
Exception in thread "main" java.lang.NumberFormatException: For input string: "a"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:410)
at java.lang.Long.parseLong(Long.java:468)
at Test.main(Test.java:5)

------解决方案--------------------
String str = new String("a") ;
char c = str.charAt(0) ;
System.out.println(Long.valueOf(c));
------解决方案--------------------
探讨

Long是把"1244"这种字符串型的数字转换成数字。你那个是字母,所以会报错。

------解决方案--------------------
探讨

“a”是string 类型
而且 a 转 long 也要先转成 ascll码才能转么

------解决方案--------------------
将Long.valueOf("str")换成Long.parseLong("str"),就可以了
------解决方案--------------------
a 是 String类型的,是数据间转换的问题,我建议你再看一看类型的转换的相关知识!
------解决方案--------------------
误人子弟啊,正解见3~5楼
探讨
将Long.valueOf("str")换成Long.parseLong("str"),就可以了

------解决方案--------------------
String str = new String("a") ;
char c = str.charAt(0) ;
System.out.println(Long.valueOf(c));
------解决方案--------------------
Long.valueOf()这个方法是让调用者传入一个字符串,返回保持指定 String 的值的 Long 对象。
意思就是调用者必须传入一个是由数字组成的字符串,“a”这个字符串不是由数字组成的,比如“123”“983901”这些才是数字组成的。

你可能有一点把char和String的一些概念混淆。
char是可以转换成整型值的,比如char类型的‘a'确实可以转型成数字,值是97,但是String不一样,它不能转型成数值,Long.valueOf()这个方法只能将看起来就是数字的String转换成long型数值。
------解决方案--------------------
Long.valueOf()这个方法是让调用者传入一个字符串,返回保持指定 String 的值的 Long 对象。
意思就是调用者必须传入一个是由数字组成的字符串,“a”这个字符串不是由数字组成的,比如“123”“983901”这些才是数字组成的。