如何将字符串拆分为一个或两个新字符串

时间:2016-02-15 19:42:27

标签: java arrays input split calculator

我制作计算器,有些计算需要3条信息(例如3 * 4),而其他只需要2条(例如5条!)。

我已设法使用以下代码将输入分成3部分:

String[] parts = myInput.split(" ");
String num1 = parts[0];
String operation = parts[1];
String num2 = parts[2];

但这意味着当我只输入2件事时,它就无法工作。

如何允许输入3件或2件作为输入?

2 个答案:

答案 0 :(得分:0)

您不应该假设输入始终采用3参数形式。而是采用通用输入,根据用例解析它。 在您的情况下,它可以归结为您接受输入后的两个特定用例:

  1. 操作单操作数的运算符 - 一元运算符
  2. 操作双操作数的运算符 - 二元运算符
  3. 对于每种情况,您都可以定义允许的运算符列表。例如。 '!'将在案例1列表中,而' *'将来是' 2'

    扫描字符串,查找操作员位置。 [^ 0-9](表示除数字以外的模式)。或者只是你可以为操作员做一个简单的检查(通过创建自己的自定义方法)

    一旦你弄清楚这一点,验证你的字符串(可选) - 例如没有意义为一元运算符提供两个操作数。

    完成此操作后,通过基于运算符拆分字符串,现在可以很容易地解析所需的操作数。计算是相当微不足道的。

    希望这有帮助。

答案 1 :(得分:-1)

在不知情的情况下,我无法帮助您找到更好的设计来适应共性和差异。但要回答所陈述的问题......

您可以使用parts.length来了解您给出的许多变量,并使用它来分支您的代码(即if else语句)。