gpt4 book ai didi

java - Ascii 转 整数

转载 作者:太空宇宙 更新时间:2023-11-04 11:59:16 24 4
gpt4 key购买 nike

我对以下代码片段有疑问:

while (str.length() > i && str.charAt(i) >= '0' && str.charAt(i) <= '9') {
result = result * 10 + (str.charAt(i) - '0');
i++;
}

有人可以告诉我为什么考虑 str.charAt(i) - '0' 以及它有什么作用吗?另外,为什么结果要乘以10?

谢谢!

最佳答案

通过执行 Str.CharAt(i) -'0',只要该字符在 0 .. 9 范围内,您只需将字符转换为实数值。

result = result * 10 的作用是将先前的结果向左“移动”(十进制基数),因为已检测到新数字(并添加到结果中)

这段代码可能正在执行字符串到整数的转换,这也是一个糟糕的转换,因为似乎 12AAA34 会被转换为 1234,因为非数字图表只是被跳过。如果一旦发现非数字字符就停止解析,就像 C atoi 那样(仍然接受/跳过空格)

关于java - Ascii 转 整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41080848/

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