我有两个问题。
我使用以下代码查找$
的ASCII值:
def a = "\$"
def b = (int)a
println b //prints 36
我很满意答案。但当我试图像这样反过来时,我发现我错过了一些东西:
def a = 36
String b = a
println b // getting output only 36
所以我的第一个问题是为什么打印36
,为什么不打$
?我错了吗?
如果相同的第一个代码块被重写为:
def a = "\$"
def b = a as int
println b
如果我运行此程序,我会收到如下错误:
Caught: java.lang.NumberFormatException: For input string: "$"
at T.run(T.groovy:2)
尽管我正在尝试和以前一样。我收到了一个错误。
那么为什么as
关键字在这里不起作用,def a = (int)b
不等于到def a = b as int
?解释一下。
提前致谢。
答案 0 :(得分:7)
当你将一个字符串转换为int时,你可以使用一个char,所以我们可以说你将一个char转换为int,当你尝试将int转换为一个字符串我认为它使用toString方法或类似的东西。尝试将36投射到char,你会看到你的'$'