我需要实现以下内容:
输入(字符串):
5+45+100-125+5-10
离开:
= 20
这里的代码只为正数实现:
String operacion="10+200+3000";
int tam = operacion.length();
String A[] = new String[100];
int pos = 0;
int sum = 0;
String aux = "";
for(int i = 0; i<tam ; i++)
{
if(operacion.charAt(i) == '+')
{
A[pos] = aux;
pos++;
aux = "";
}
else
{
aux = aux + operacion.charAt(i);
}
}
A[pos] = aux;
pos++;
for(int i = 0; i<pos ; i++)
{
sum=sum+Integer.parseInt(A[i]);
}
System.out.println("= "+sum);
离开
= 3210
问题是我不能为底片做手术。
一种选择是存储运算符,并在最后一个循环中执行相应的操作:
这样你会得到一个正确的计算:
记住整数有符号,减法无非就是加一个负数,我提出了这个更紧凑的解决方案,也使用正则表达式。还要检查符号和数字之间是否有空格,如您在输入中看到的:
我们得到的输出将是:
我会创建另一个数组来存储负数。我们称它为 B。我还将创建另一个整数来控制位置。
然后在条件下我们可以使用
if-else if-else
如下结构:该结构
if-else if-else
的工作方式与 a 相同,if-else
但在这种情况下,它类似于:“如果满足此条件,请执行此操作,如果不满足,请检查它是否满足此其他条件,如果满足,请执行此操作其他。如果两项检查都不符合,请执行其他“。您实际上可以
aux
对这两个选项使用 的值,因为每次找到 a+
或 a时它都会将自身重置为空-
。最后你可以做一个循环来减去负数:
您可以保留另一个带有符号的向量,在遍历链时存储它们并最终执行操作,例如:
我在这里编辑了代码,它可能包含一些错误,但我认为只有阅读它你才会理解这个想法。
加减字符串中的数字。在我输入“5+45+100-125+5-10”的示例中,结果是 20。
最快和最简单的方法是使用匹配每个数字的正则表达式,包括正数和负数。我把我的代码留给你。
问候。