gpt4 book ai didi

Scala char 到 int 的转换

转载 作者:行者123 更新时间:2023-12-02 20:46:36 25 4
gpt4 key购买 nike

def multiplyStringNumericChars(list: String): Int = {
var product = 1;
println(s"The actual thing + $list")
list.foreach(x => { println(x.toInt);
product = product * x.toInt;
});

product;
};

这个函数接受 12345 这样的字符串,并应返回 1 * 2 * 3 * 4 * 5 的结果。然而,我回来没有任何意义。从 CharInt 的隐式转换实际返回的是什么?

它似乎将 48 添加到所有值中。相反,如果我执行 product = Product * (x.toInt - 48) 结果是正确的。

最佳答案

确实有道理:就是这样how characters encoded in ASCII table : 0 字符映射到十进制 48,1 映射到 49,依此类推。所以基本上当你将 char 转换为 int 时,你所需要做的就是减去 '0':

scala> '1'.toInt
// res1: Int = 49

scala> '0'.toInt
// res2: Int = 48

scala> '1'.toInt - 48
// res3: Int = 1

scala> '1' - '0'
// res4: Int = 1

或者只是使用x.asDigit,正如@Reimer所说

scala> '1'.asDigit
// res5: Int = 1

关于Scala char 到 int 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16241923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com