首页 新闻 会员 周边 捐助

数字格式显示异常,求解,怎样理解报错的每一行问题?

1
悬赏园豆:30 [已解决问题] 解决于 2015-10-23 14:59
public class ConverTo 
    
    { public static void main(String [] args)
       { String numberIn =args[0];
         convertNum(numberIn);
        }
        static void convertNum(String num)
           {
              long showNumber;
                switch(num)
               { case "one":
                  showNumber = Long.parseLong(num);
                  System.out.println(num+"convert to"+showNumber);
                  break;
                 case "two":
                  showNumber = Long.parseLong(num);
                  System.out.println(num+"convert to"+showNumber);
                  break;
                 case "three":
                  showNumber = Long.parseLong(num);
                  System.out.println(num+"convert to"+showNumber);
                  break;
                 case "four":
                  showNumber = Long.parseLong(num);
                  System.out.println(num+"convert to"+showNumber);
                  break;
                 case "five":
                  showNumber = Long.parseLong(num);
                  System.out.println(num+"convert to"+showNumber);
                  break;
                 case "six":
                  showNumber = Long.parseLong(num);
                  System.out.println(num+"convert to"+showNumber);
                  break;
                 case "seven":
                  showNumber = Long.parseLong(num);
                  System.out.println(num+"convert to"+showNumber);
                  break;
                 case "eight":
                  showNumber = Long.parseLong(num);
                  System.out.println(num+"convert to"+showNumber);
                  break;
                 case "nine":
                  showNumber = Long.parseLong(num);
                  System.out.println(num+"convert to"+showNumber);
                  break;
                 case "ten":
                  showNumber = Long.parseLong(num);
                  System.out.println(num+"convert to"+showNumber);
                  break;

                 }


            }



     }

以上是运行结果

本代码是个练习题,它将10个数字对应的单词(one到ten)转换为一个long值。使用switch语句来进行转换,并通过命令行参数获取要转换的单词。

lubocsu的主页 lubocsu | 初学一级 | 园豆:46
提问于:2015-10-23 11:40
< >
分享
最佳答案
1

string inNum="1";

Long.parseLong(inNum);//参数应该是要string类型的数字才可以转

你的inNum="one"; 这怎么可能转的了呢.

而且你既然

switch(inNum)

{

  case "one": 

    //那么这里应该是直接就知道值是1了吧?. 为什么还要转呢

  break;
}

 

至于错误信息如果你想看哪里出错了,就应该倒着看..  

at ConvertTo.main(ConverTo.Java :6) //在ConvertTo类的Main函数里. 括号里的是说这个函数在ConverTo.java文件中的第几行.

at ConvertTo.ConvertNum(ConvertTo.java:13) // 在main里调用ConvertNum()出错.

at java.lang.Long.parseLong //在ConvertNum()里调用Long.parseLong()函数报错.

Exception in thread "Main" java.lang.NumerFormatException: For input string:"one".  //输入的字符串"one" 导致 Numer格式异常. 

大概就是这样。

收获园豆:20
李丶GuanYao | 小虾三级 |园豆:1228 | 2015-10-23 11:45

谢谢!万分感谢!拜师!

lubocsu | 园豆:46 (初学一级) | 2015-10-23 15:21
其他回答(1)
1
static void convertNum(String num)
{
long showNumber; switch(num)
{
//case值: one=num 时。Long.parseLong(num)是无法转化的,字符串是不能转化为基本类型的
 
case "one":     
showNumber = Long.parseLong(num);
System.out.println(num+"convert to"+showNumber); break;
}
收获园豆:10
牧师963 | 园豆:224 (菜鸟二级) | 2015-10-23 13:59

谢谢!该函数是可以将字符串转化为长整型的,但是字符串必须是数字形式的才行,比如"123".

支持(0) 反对(0) lubocsu | 园豆:46 (初学一级) | 2015-10-23 15:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册