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;
};
Đây là một hàm có chuỗi giống như 12345
và phải trả lại kết quả là 1 * 2 * 3 * 4 * 5
. Tuy nhiên, tôi nhận được trở lại không có ý nghĩa gì cả. Chuyển đổi ngầm ẩn từ Char
thành Int
thực sự trở lại là gì?Scala char to int conversion
Dường như thêm 48
vào tất cả các giá trị. Nếu thay vào đó tôi làm product = product * (x.toInt - 48)
kết quả là chính xác.
Đối với một nhân vật, toInt lợi nhuận mã ký tự tương ứng. Sử dụng x.asDigit để có được số nguyên tương ứng với một chữ số (điều này làm việc cho đến cơ sở 36 nếu bạn bao gồm các chữ cái). –