java - Java 中 Atoi 表示负值

标签 java for-loop negative-number atoi for-else

我正在用 Java 编写一个 Atoi 函数。它对于 +ve 整数运行良好。但我想要的是,当我输入负整数时,它应该给我一个错误。所以我尝试在我的 Atoi 类中包含 continue 语句。实现的类是:

class Atoi {

    int atoi(String tmp) {

    int result = 0;

        for (int i = 0; i < tmp.length(); i++) {

            char digit = (char)(tmp.charAt(i) - '0');

        if(digit == '-')

        continue;
        }

        else {

            result += (digit * Math.pow(10, (tmp.length() - i - 1)));
        }

    return result;

    }
}   

但不幸的是,它给了我该字符的负等价物,即 -12 它给了我 655312!帮助。

编辑:假设我需要检查 float 我应该做什么?如果我输入 12.1 或 123.2,它应该分别返回 12.1 和 123.2!

最佳答案

您应该给出一个错误(抛出异常、返回 -1 或任何您所说的“给出错误”的意思),而不是继续

如果您想忽略 -,您可以将 else 子句更改为:

result = digit + result * 10;

关于java - Java 中 Atoi 表示负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13252136/

相关文章:

for-loop - 如何在for循环中运行jupyter笔记本宏

python - 在 if 语句中中断 for 循环

java - 如何根据需要以编程方式更改锚定 Pane 的高度?

java - 无法更新自定义适配器中的项目

将 for 循环中的 rbind 替换为 lapply? ( hell 第二圈)

java - Java 负数的哈希编码

c++ - 编译器和负数表示

java - Struts 同步器 token

java - EJB Bean 与不同的未完成事务关联

Python,负值不超出列表范围