java简单的多则运算计算器

原创 2018年04月16日 23:51:09

简单写一个java相关的多则运算计算器

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.StringTokenizer;


public class Cal {

	public static void main(String[] args) {
		boolean isSign=false;
	
		String s="-1+2-3*4/2";
	/*
	  //如需键盘输入
	 	Scanner sc = new Scanner(System.in);
		String s = sc.nextLine();
		
		*/
		if(s.charAt(0)=='-'){
			s=s.substring(1);
			isSign=true;
		}
		//数字切割器
		StringTokenizer numSt=new StringTokenizer(s, "0123456789.");
		//存放所有运算符
		List<String> opers=new ArrayList<>();
		while(numSt.hasMoreTokens()){
			opers.add(numSt.nextToken());
		}	
		//运算符切割器
		StringTokenizer  operSt=new StringTokenizer(s, "+-*/%");
		List<Double> numbers=new ArrayList<>();
		while(operSt.hasMoreTokens()){
			numbers.add(Double.parseDouble(operSt.nextToken()));
		}
		if(isSign){
			numbers.add(0,numbers.remove(0)*-1);
		}
for (int i = 0; i < opers.size(); i++) {
			if(opers.get(i).equals("*")){
				double  result=numbers.remove(i)*numbers.remove(i); 
				numbers.add(i, result);
				opers.remove(i);
				i--;
			}
			else if(opers.get(i).equals("/")){
				double  result=numbers.remove(i)/numbers.remove(i);
				numbers.add(i, result);
				opers.remove(i);
				i--;
			}
		}
		for (int i = 0; i < opers.size(); i++) {
			if(opers.get(i).equals("+")){
				double  result=numbers.remove(i)+numbers.remove(i); 
				numbers.add(i, result);
				opers.remove(i);
				i--;
			}
			else if(opers.get(i).equals("-")){
				double  result=numbers.remove(i)-numbers.remove(i); 
				numbers.add(i, result);
				opers.remove(i);
				i--;
			}
			
		}
		System.out.println();
		for (int i = 0; i < numbers.size(); i++) {
			System.out.print(numbers.get(i)+"\t");
		}
		

	}

}

StringTokenizer是一个用来分隔String的应用类,相当于VB的split函数。
1.构造函数
public StringTokenizer(String str)
public StringTokenizer(String str, String delim)
public StringTokenizer(String str, String delim, boolean returnDelims)
第一个参数就是要分隔的String,第二个是分隔字符集合,第三个参数表示分隔符号是否作为标记返回,如果不指定分隔字符,默认的是:”\t\n\r\f”
2.核心方法
public boolean hasMoreTokens()
public String nextToken()
public String nextToken(String delim)
public int countTokens()
其实就是三个方法,返回分隔字符块的时候也可以指定分割符,而且以后都是采用最后一次指定的分隔符号。

Android项目实战:简单天气

-
  • 1970年01月01日 08:00

数据结构(四)java模拟计算器四则运算算法

用java模拟解决计算器四则运算算法问题
  • shuaicihai
  • shuaicihai
  • 2017-02-03 16:16:28
  • 2307

java实现的一个简单计算器

  • 2012年12月08日 12:28
  • 44KB
  • 下载

PB做的计算器(支持多则运算)

  • 2009年11月18日 22:50
  • 219KB
  • 下载

android 计算器

  • 2015年11月02日 17:35
  • 1.39MB
  • 下载

java编写计算器,实现计算器的简单功能。实现实数的加减乘除运算,并实现清零,和逐个清除功能。

java编写计算器,实现计算器的简单功能。实现实数的加减乘除运算,并实现清零,和逐个清除功能。 win.java package jsq; import java.awt.*; impor...
  • xfsgdsgoy
  • xfsgdsgoy
  • 2017-05-25 21:18:52
  • 965

Java 小例子:老手如何编写计算器

计算器不单单是练习如何布局,更重要的是如何实现复杂的运算逻辑。新手编写计算器,无疑会用到大量的 if-else。而熟练的开发人员知道如何避开这点。下面是代码。 PS:我终于找到空间了。这里是编写过程的...
  • yidinghe
  • yidinghe
  • 2009-04-15 17:24:00
  • 9396

数据结构之计算器的实现(JAVA)(四)

原理:        1.将中序表达式变化后续表达式        2.当前字符为数字,将该数字放入栈中        3.当前字符为操作符,从栈中取出两个树,根据操作符来运算,将运算结果放入到...
  • yilip
  • yilip
  • 2015-04-01 18:29:42
  • 1243

java模拟计算器

Problem Description 简单计算器模拟:输入两个整数和一个运算符,输出运算结果。 Input 第一行输入两个整数,用空格分开; 第二行输入一个运算符(+、-、*、/...
  • yu_mian
  • yu_mian
  • 2017-04-11 19:59:22
  • 130

Java实现简单计算器的加减乘除功能

package guiawt; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Frame; impor...
  • aa350639
  • aa350639
  • 2012-04-10 13:19:07
  • 23077
收藏助手
不良信息举报
您举报文章:java简单的多则运算计算器
举报原因:
原因补充:

(最多只允许输入30个字)