我在Win7 Pro上使用Java 7 SE并遇到此问题: 将int转换为char无法正常工作。
有什么问题?
感谢。
>>> grad
-a*b*exp(-a*b*x)/(1 + exp(-a*b*x))
>>> simplify(grad)
-a*b/(exp(a*b*x) + 1)
答案 0 :(得分:3)
char '1'
与整数值1
不同。它等于表示'1'
的ASCII码的值。您可以找到所有ASCII值的编码here
如果要将char转换为类似的整数,则需要先从中减去'0'
(字符0,而不是整数)。由于所有整数在ASCII中都是连续的,这会将所有内容都降低,以便'0'
变为0
,'1'
变为1
等等。
答案 1 :(得分:0)
您可以考虑使用标准Java库中内置的一些静态方法。
例如,Integer.parseInt(String s)将获取字符串s并尝试将其转换为整数。因此Integer.parseInt(“5”)将返回5作为整数。
String.valueOf(int i)会将整数转换为其String等价物。所以String.valueOf(10)会将“10”作为字符串返回。
如果你实际上使用的是chars而不仅仅是字符串,这可能会有所帮助:https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html
有像getNumericValue和isDigit这样的方法。不确定这是否正是您正在寻找的,但它可能比使用魔术数字更清晰,例如添加48来获取您正在寻找的字符。