0

我正在尝试制作一个程序,让您输入任何一步方程并求解。为了使您可以以任何方式输入它,我运行了一个 for 循环来检查每个字符以查看它是什么。但是后来,我意识到我不能为此使用两位数。所以我尝试添加一个小函数来检查右边是否有一个字符,以测试它是否是一个数字。如果它是一个数字,将它加上它找到的那个,成为一个数字。就像它看到 1 并检查右侧是否有 0 一样,它会给你 10。这是此函数的代码

        Find = equation.charAt(i);

        if (Character.isDigit(Find))
        {
            if(Found == 0)
            {
                if(i < equation.length() - 1)
                {
                    FindNext = equation.charAt(i + 1);
                    if (Character.isDigit(FindNext))
                    {
                        one = (Character.toString(Find) + Character.toString(FindNext));
                        Found = 2;
                        One = Double.parseDouble(one);
                    }
                }
                else
                {
                    one = (Character.toString(Find));
                    Found = 2;
                    One = Double.parseDouble(one);
                }
            }
            else
            {
                if(i + 1 < equation.length() - 1)
                {
                    FindNext = equation.charAt(i + 1);
                    if (Character.isDigit(FindNext))
                    {
                        two = (Character.toString(Find) + Character.toString(FindNext));
                        Two = Double.parseDouble(one);
                    }
                }
                else
                {
                    two = (Character.toString(Find));
                    Two = Double.parseDouble(two);
                }
            }
        }

有谁看到我做错了什么?

4

1 回答 1

3

如果这个数字是 100?1000?10000?......你明白了。您不能简单地检查前面的一个字符。+相反,您应该通过您支持的操作(即, -,等)来分隔解析*,这样会更容易获得数字。

于 2012-06-18T16:04:26.907 回答