一、题目
编写一个字符串表达式求解函数int expression(char* s); 输入一个字符串表达式,返回它的结果。表达式长度不会超过100。表达式最少有一项,且以等号=结束。表达式中只包含加法和减法,且运算均在整数范围之内。
编写main函数测试该函数的正确性。
输入:
2+2345+913-3=
输出:
3257
二、思路
在本题中,输入一个字符串表示一个数学表达式
数学表达式很简单只包括加号和减号
所以只利用String.split()方法将字符串分割成小部分放到字符串数组中
然后再进行加减操作
三、代码实现
定义方法expression(String s)
首先将字符串以 + 分割 放到字符串数组
for循环判断以加号分割的字符串数组是否有包含 - 号的元素
再以 - 号分割
当下标为偶数的时候说明这个值需要加到结果中
当下标为奇数的时候说明这个值需要减掉
最后返回结果
而对于输入的 = 号
在调用方法前忽略掉即可
import java.util.Scanner;
public class Main{
static int expression(String s){
int res = 0;
String[] strings = s.split("\\+");
String[] strings1 = null;
for(int i = 0;i < s