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语句来进行转换,并通过命令行参数获取要转换的单词。
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格式异常.
大概就是这样。
谢谢!万分感谢!拜师!
谢谢!该函数是可以将字符串转化为长整型的,但是字符串必须是数字形式的才行,比如"123".