java的数据结构与算法(14)将中缀表达式存入ArrayList

前言:
我们为了运算方便确定将表达式**"1+((2+3)4)-5";*
转为 ArrayList [1,+,(,(,2,+,3,),*,4,),-,5
大致思路分析:
1.先定义list ,用来存放中缀表达式的内容
2.定义一个指针用来遍历;,定义一个字符串用来拼接多位数,定义一个char 每遍历一个字符,就放入到char
3.开始循环,如果是符号,我们需要加入到集合中去,是数字则判断是否为多位数,不是多位数的话继续扫描下一个,是多位数的话直接放入集合中

public static List<String> toInfixExpressionList(String s) {
		// 定义一个list,存放中缀表达式对应的内容
		List<String> ls = new ArrayList<String>();
		int i = 0; // 这个是一个指针,用于遍历中缀字符串
		String str; // 对多位数的拼接工作 
		char c; // 每遍历一个字符,就放入到c
		do {
			// 如果c是一个非数字,我需要加入到ls去
			// 小于1大于9判定为括号和+-*/
			if ((c = s.charAt(i)) < 48 || (c = s.charAt(i)) > 57) {
				ls.add("" + c);
				i++;
			} else { // 如果是一个数字,需要考虑多位数的问题
				// 先将str清空
				str = "";
				while (i < s.length() && (c = s.charAt(i)) >= 48 && (c = s.charAt(i)) <= 57) {
					// 拼接
					str += c;
					i++;
				}
				ls.add(str);
			}
		} while (i < s.length());
		{
			return ls;
		}

	}

总结:这个还是挺简单的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值