我目前正在编写一个计算器应用程序。该应用程序的一部分是一个简单的计算器,其工作方式类似于 Windows 中的计算器(使用 Windows 8)。它可以解析在文本框中输入的数字。但是,如果用户输入的格式不正确,例如 5 * * 5,则会出错。我希望它检查之前输入的字符以查看它是否是运算符,如果是,则在用户键入时将其替换为 5 * / 5 以变为 5 / 5。它还需要检查括号的顺序是否正确,例如 () 或 () 不是 )(。需要检查的另一件事是输入的数字只有一个小数点。例如,4.38585 + 5.32948 .我已经将密钥条目限制为数字和运算符。我已经检查了一段时间,但没有看到任何解决方案。
问问题
1004 次
1 回答
1
如果您要允许用户输入一个表达式,然后让他按下“计算”按钮,那么您不应该即时验证事物。让用户犯错,因为他无论如何都会犯错。用户将想要返回并编辑他输入的文本。您的编辑规则将使这变得困难或不可能。或者更糟糕的是,不一致。
例如,假设用户输入4.35*7.29
.
然后他意识到他想分裂。但是您的编辑规则不会让他删除 ,*
因为这会导致无效号码。而且他不能输入第/
一个然后删除,因为这样做会给出/*
or */
,两者都是无效的。您是否要在编辑时允许临时无效表达式,但在用户键入时不允许它?这将是不一致的,并且不会阻止您的评估者必须再次进行错误检查并通知用户。
如果您愿意,可以将击键限制为数字和运算符,但不要尝试验证用户输入的形式。让他输入 **)9(// 如果他愿意。在解析时处理错误——在用户按下计算按钮之后。
现在,如果您的应用程序像 Windows 计算器一样工作,因为它在用户输入值和运算符时保持运行总计,那是另一回事。但你所说的只会令人沮丧。我当然不想使用它。
于 2013-07-21T12:05:33.307 回答