用java scanner 编写计算器程序
来源:互联网 发布:玻璃体混浊 知乎 编辑:程序博客网 时间:2024/06/05 16:27
写了个简单java 计算器程序,记录一下
package test;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;class Calculator {private Double num1;private Double num2;private String var;private Scanner input;public Double getNum1() {return num1;}public void setNum1(Double num1) {this.num1 = num1;}public Double getNum2() {return num2;}public void setNum2(Double num2) {this.num2 = num2;}public String getVar() {return var;}public void setVar(String var) {this.var = var;}public Scanner getInput() {return input;}public void setInput(Scanner input) {this.input = input;}public boolean input1(){ System.out.println("请输入第一个数字"); String num1Str = input.next(); if(!this.isNumber(num1Str)){ input1(); }else{ this.num1 =Double.valueOf(num1Str); } return true; }public boolean input2(){ System.out.println("输入第二个数:"); String num2Str = input.next(); if(!this.isNumber(num2Str)){ input2(); }else if(var.equalsIgnoreCase("/")&&num2Str.equalsIgnoreCase("0")){ System.err.println("除数不能为0"); input2(); }else{ this.num2 =Double.valueOf(num2Str); } return true;}public boolean inputVar(){System.out.println("输入计算符号:+ - * /");String varStr=input.next(); Pattern pat=Pattern.compile("[+-\\\\*/]"); Matcher match=pat.matcher(varStr); boolean flag=match.matches(); if(flag==false){ System.err.println("运算符号不正确!"); inputVar(); }else{ this.setVar(varStr); } return true;}public void goCal(){Scanner input= new Scanner(System.in);this.setInput(input);boolean flag1=this.input1();if(flag1){if(this.inputVar()){if(this.input2()){calculate();}}}} public void calculate(){ try {switch (var) {case "+":System.out.println(num1+"+"+num2+"="+(num1+num2));break;case "-": System.out.println(num1+"-"+num2+"="+(num1-num2));break;case "*": System.out.println(num1+"-"+num2+"="+(num1*num2));break;case "/":System.out.println(num1+"/"+num2+"="+(num1/(double)num2));break;default:break;}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();if(input!=null){ input.close(); System.exit(0); }} if(input!=null){input.close();System.exit(0);} } public boolean isNumber(Object obj){ if(obj==null||obj.toString().equals("")){ return false; } Pattern pattern=Pattern.compile("[0-9]+.*[0-9]*"); String str=obj.toString(); Matcher matcher=pattern.matcher(str); boolean flag=matcher.matches(); if(flag==false){ System.err.println("请输入有效数值!"); } return flag; }}public class TestB {public static void main(String[] args) {Calculator cal = new Calculator();cal.goCal();}}
0 0
- 用java scanner 编写计算器程序
- Java中基于Scanner 编写的计算器小程序
- 【分享】【计算器程序--java编写】
- Java编写的计算器程序及源代码
- Java编写的计算器程序及源代码
- Java编写一个计算器程序过程介绍
- 用java编写一个计算器
- 用C#编写的计算器小程序
- 20170828_chr_MyCalculator 用servlet编写计算器程序
- 【练习题】构造方法 编写Java程序,模拟简单的计算器。
- 用java编写计算器的源代码,,,
- 用Java编写的简易计算器
- 用java编写一个简单的计算器
- 用Java swing 编写简单的计算器
- 用java编写的简易计算器
- 用Java编写的简易计算器
- 用netbeans编写的java简易计算器
- 用Java编写的一个小计算器
- Java 8的新特性
- windows下markdown+evernote的使用
- Android Studio 代码检查Lint工具
- 单例设计模式
- python爬图片到本地
- 用java scanner 编写计算器程序
- dedetemplate.class.php源码分析
- clojure中的小细节
- 利用geoserver+udig发布地图并对地图进行颜色渲染
- js数组排序(+洗牌)
- gensim Word2Vec 处理中文 KeyError
- Ubuntu搭建简易Postfix邮箱服务器
- 关于psycopg
- GlobalSign OCSP故障搞垮了一大块互联网-故障详解