整数四则运算

你的程序要读入一个整数四则运算的式子,其中的整数均为非负整数且小于10000,其中
的运算符只有加减乘除(+-*/)四种。你的程序要计算这个式子,并输出结果。计算过程
必须遵守优先级,即*/要在+-之前先计算。当遇到除法时,按照Java 语言的整数除法的
方式来计算,即只留下整数的结果。
提示:一种可能的做法是,将整个式子作为字符串读入,然后找出其中最后一个+或-,在
此位置将其截成两段,分别计算后再做+或-,以此类推。
另,用Integer.parseInt(s)可以从一个字符串得到整数。
输入格式:
输入时,所有的成分均没有有空格隔开,即每个运算符前后都没有空格。注意,单个数字也
是可能的一种输入。
输出格式:
输出结果的整数。
输入样例:
2+3*4-6/3
输出样例:

12

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		String s = in.nextLine();
		int sum;
//		切割字符串为字符串数组
		String[] s1=s.split("\\+|-");
//		输出切割后的字符串数组
		for(String b:s1)
		{
			System.out.println(b);
		}
		int[] digt = new int[s1.length];
//		转换每个字符串数组,并求出的结果
		for(int i=0;i<s1.length;i++)
		{
			String[] s2 =s1[i].split("\\*|/");
//			输出切割后的字符串数组
			for(String b:s2)
			{
				System.out.println(b);
			}
			int[] s3 = new int[s2.length];
//			把字符串转换int数据
			for(int j=0;j<s2.length;j++)
			{
				s3[j]=Integer.parseInt(s2[j]);
			}
			int aa=0;
			int bb=0;
			int cnt=0;
			aa=s1[i].indexOf('*');
			bb=s1[i].indexOf('/');
			digt[i]=s3[0];
			for(int k=1;cnt<s2.length-1;k++)
			{		
				if(aa==-1)
				{
					digt[i]/=s3[k];				
					cnt++;
				}
				else if(bb==-1)
				{
					digt[i]*=s3[k];
					cnt++;
				}
				else
				{
					if(aa>bb)
					{
						digt[i]/=s3[k];
						bb=s1[i].indexOf('/',bb+1);
						cnt++;
					}
					else
					{
						digt[i]*=s3[k];
						aa=s1[i].indexOf('*',aa+1);
						cnt++;
					}
				}				
			}			
		}
//		输出得到每个子字符串的结果
		for(int b:digt)
		{
			System.out.println(b);
		}
		int aa=0;
		int bb=0;
		int cnt=0;
		aa=s.indexOf('+');
		bb=s.indexOf('-');
		sum=digt[0];
//		得出总结果
		for(int k=1;cnt<digt.length-1;k++)
		{	
			if(aa==-1)
			{
				sum-=digt[k];
				cnt++;
			}
			else if(bb==-1)
			{
				sum+=digt[k];
				cnt++;
			}
			else
			{
				if(aa>bb)
				{
					sum-=digt[k];
					bb=s.indexOf('-',bb+1);
					cnt++;
				}
				else
				{
					sum+=digt[k];
					aa=s.indexOf('+',aa+1);
					cnt++;
				}
			}			
		}
		System.out.println(sum);
		in.close();
	}

猜你喜欢

转载自blog.csdn.net/qq_41207885/article/details/79836104