我有两个问题.
我做了以下代码来查找ASCII值$:
def a = "\$"
def b = (int)a
println b //prints 36
Run Code Online (Sandbox Code Playgroud)
我很满意答案.但当我试图像这样反过来时,我发现我错过了一些东西:
def a = 36
String b = a
println b // getting output only 36
Run Code Online (Sandbox Code Playgroud)
所以我的第一个问题是为什么要打印36,为什么不打印$?我错了吗?
好吧,如果相同的第一个代码块被重写为:
def a = "\$"
def b = a as int
println b
Run Code Online (Sandbox Code Playgroud)
如果我运行此程序,我会收到如下错误:
Caught: java.lang.NumberFormatException: For input string: "$"
at T.run(T.groovy:2)
Run Code Online (Sandbox Code Playgroud)
即使我想尝试像以前一样.我收到了一个错误.
那么,为什么as关键字不会在这里工作,也def a = (int)b就是不等于到def a = b as int?请解释一下.
提前致谢.
当你将一个字符串转换为int时,你可以使用一个字符串,所以我们可以说你将一个字符串转换为int,当你尝试将int转换为字符串时我认为它使用toString方法或类似的东西.尝试将36投射到char,你会看到你的'$'
| 归档时间: |
|
| 查看次数: |
19928 次 |
| 最近记录: |