2021-10-08
作者:互联网
蓝桥杯:P0802字符串表达式
编写一个字符串表达式求解函数int expression(char* s); 输入一个字符串表达式,返回它的结果。表达式长度不会超过100。表达式最少有一项,且以等号=结束。表达式中只包含加法和减法,且运算均在整数范围之内。
编写main函数测试该函数的正确性。
输入:
2+2345+913-3=
输出:
3257
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String str=input.next();
String str1=str.substring(0, str.length()-1);//把等号排除在外,不参与运算
System.out.println(expression(str1));
}
public static int expression(String s){
int result=0;
String []strings=s.split(("\\+"));//先用加号分割成数组
String []strings1=null;
for (int i=0;i<strings.length;i++){//利用循环把加号分割好的相加,到剩减号
if (strings[i].contains("-")){//利用contains()判断strings数组的元素中是否包含剩下减号
//如果又减号就继续分割;如913-3
strings1=strings[i].split("-");
for (int j=0;j<strings1.length;j++){//913 3
//利用元素位数判断该减还是相加
if ((j+1)%2==0){//偶数位靠近减号
result-=Integer.parseInt(strings1[j]);
}else{//奇数位的元素肯定靠经加号
result+=Integer.parseInt(strings1[j]);
}
}
}else{//加号分割好的相加
result+=Integer.parseInt(strings[i]);
}
}
return result;
}
}
标签:10,String,int,08,result,减号,strings,表达式,2021 来源: https://blog.csdn.net/ounqgf/article/details/120652461