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

How to split a string into either one or two new strings

我正在制作一个计算器,有些计算需要 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 个东西作为输入?

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

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

您不应该假设输入总是采用 3 参数形式。相反,采用通用输入,根据用例对其进行解析。 在您的情况下,在您接受输入后,它归结为两个特定的用例:

  1. 对单个操作数进行运算的运算符 - 一元运算符
  2. 对双操作数进行运算的运算符 - 二元运算符

对于每种情况,您都可以定义允许的运算符列表。例如。 '!'将在 case 1 列表中,而 '*' 将在 case '2'

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

弄清楚这一点后,请验证您的字符串(可选)- 例如一元运算符有两个操作数是没有意义的。

完成此操作后,现在可以通过根据运算符拆分字符串来轻松解析所需的操作数。那么计算是相当微不足道的。

希望对您有所帮助。