gpt4 book ai didi

Java 检查计算器程序

转载 作者:行者123 更新时间:2023-12-01 16:23:33 25 4
gpt4 key购买 nike

我对 Java 编码相当陌生,需要帮助检查我正在编写的计算器程序!这就是我试图在程序中编写检查的内容: ---> 如果用户输入了不正确的公式。示例:如果他们输入“6 + 2 +”并且末尾没有输入数字,然后按“=”,则应该会出现警告,提示他们需要正确完成公式。我该如何去检查这个?我基本上已经有了整个计算器,但只是想知道如何处理它。

btnEqual.setOnAction(e ->     
{

txtOutput.appendText(" = ");
txtTickerOutput.appendText(" = ");


String number = "";

for(int i = 0; i < numberStack.size(); i++)
{
number += numberStack.get(i);
}

number = number.replaceAll("\\s+", ""); // get rid of whitespace

Integer intNumber = Integer.parseInt(number);

intStack.push(intNumber);


int num = 0;

for(int i = 0; i < numberStack.size(); i++)
{

num = intStack.get(i);


for(int k = 0; k <= operatorStack.size(); k++)
{

// try - catch
try {

String str = operatorStack.get(k);

if(str.contains("+"))
{
num += intStack.get(++i); // pre-increment operators
}


else if (str.contains("-"))
{
num -= intStack.get(++i);
}


else if (str.contains("/"))
{
num /= intStack.get(++i);
}


else if (str.contains("*"))
{
num *= intStack.get(++i);
}



} catch (Exception x)
{
x.toString();
}

}
}


// print calculation to output
String calculation = String.valueOf(num);

if (calculation.contains("=") == false)
{
txtTickerOutput.appendText("Error: The formula does not contain an = sign!");
}

txtOutput.appendText(calculation);
txtTickerOutput.appendText(calculation);

// remove all elements from stacks
numberStack.removeAllElements();
operatorStack.removeAllElements();
intStack.removeAllElements();


});

最佳答案

有多种方法可以实现此目的,具体取决于计算器的功能,但一个明显的方法是:

如果您有一个诸如 3+4+ 的公式,并且您想知道它是否无效,因为它以运算结束,您可以执行以下操作:

String formula = "3+4+1";
String operations = "-+/%";
if(!formula.equals("")) {
if(operations.contains(formula.substring(formula.length()-1))) {
System.out.println("Bad operation!");
}
}

上面的代码只是检查公式中的最后一个字符是否是一个运算(因为它将位于运算字符串中)。在 KeyEvent 上,您可以检查 =,然后代入上面的当前公式,如果操作错误,则取消该事件并让用户知道。

关于Java 检查计算器程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62206981/

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