今天练习了一个简约的java计算器的实现,特此阿萌分享代码给大家,本计算器代码也许有冗余,但是达到的限制效果还是比较完好的。

程序的实现还是比较简单的,而且代码也比较乱,想到那写到哪,但是对于作为练习的一个例子,还是有参考价值的,尤其是至少做到了还不错的规格限制,例如:

限制了不能重复输入多个逗号,以及运算符的连点限制,与此同时也保证了正常的连续运算。

下面贴出代码,因为包含着界面,代码量还是可以的:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

public class Calculator  extends JFrame implements ActionListener{

JPanel jp=new JPanel(new GridLayout(5,4,4,3));

JTextField jt=new JTextField();

public Calculator(){

super("Calculator简易计算器");

setSize(260,240);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setLayout(new BorderLayout());

getContentPane().add(jt,BorderLayout.NORTH);

getContentPane().add(jp,BorderLayout.CENTER);

jt.setHorizontalAlignment(JTextField.RIGHT);

jt.setBackground(new Color(240,240,240));

jt.setText("0");

String btnStr[]={"sqrt","+/-","Back","C","7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};

JButton b[]=new JButton[btnStr.length];

for(int i=0;i

b[i]=new JButton(btnStr[i]);

jp.add(b[i]);

b[i].addActionListener(this);

}

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

public static void main(String args[]){

new Calculator();

}

int first=1;

String jisuan,oldJisuan;

double a=0;

public void actionPerformed(ActionEvent e) {

String str=e.getActionCommand().trim();

if(str=="C"){

a=0;

jt.setText("0.");

first=1;

}else if(str=="Back"){

jt.setText(jt.getText().substring(0,jt.getText().length()-1));

}else if(str=="+/-"){

if(jt.getText().charAt(0)=='-'){

jt.setText(jt.getText().substring(1,jt.getText().length()));

}else{

jt.setText("-"+jt.getText());

}

}else if(str=="sqrt"){

a=Double.parseDouble(jt.getText());

a=Math.sqrt(a);

jt.setText(String.valueOf(a));

}else if("0123456789.".indexOf(str)!=-1){

if(str=="."&&jt.getText().indexOf(".")!=-1){

}else if(first==1){

jt.setText(str);

first=0;

}else{

jt.setText(jt.getText()+str);

}

}else if("+-*/=".indexOf(str)!=-1&&str!=jisuan){

oldJisuan=jisuan;

jisuan=str;

first=1;

if(a!=0){

if(jisuan!="="){

jisuan(jisuan);

}else{

jisuan(oldJisuan);

}

jt.setText(String.valueOf(a));

}else{

a=Double.parseDouble(jt.getText());

}

}

}

public void jisuan(String s){

switch(s){

case "+":

a+=Double.parseDouble(jt.getText());

break;

case "-":

a-=Double.parseDouble(jt.getText());

break;

case "*":

a*=Double.parseDouble(jt.getText());

break;

case "/":

a/=Double.parseDouble(jt.getText());

break;

}

}

}

因为我接触的面相对象编程实例不多,如有网友大大能给我一些宝贵的意见,那么感激不敬。

逗号运算符java_简单的java计算器 实现了重复标点及运算符连点限制相关推荐

  1. 一个最简单的java计算器

    学习java的第三天,想检验一下前两天的学习成果,于是仿照着以前做的C语言计算器做了一个最为简单的java计算器(望大哥们指导) 总结:遇到的问题 0.上传博客要封面emmmm,不知道传什么,那就附一 ...

  2. 口袋妖怪 java_简单的Java口袋妖怪扑灭模拟器

    我已经写了一个类创建和战斗口袋妖怪,但我不知道如何调用测试类中的战斗方法,以测试我写的类.简单的Java口袋妖怪扑灭模拟器 我的任务是编写和测试模拟两个口袋妖怪之间的战斗模拟.每个口袋妖怪都有一个健康 ...

  3. surfacecontrol.java_简单说说JAVA层中Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系...

    1.Surface Surface extends Object implements Parcelable java.lang.Object android.view.Surface Class O ...

  4. 线程池简单实现java_简单实现java线程池

    package com.ty.thread; importjava.util.HashSet;importjava.util.Set;importjava.util.concurrent.Blocki ...

  5. 字符串 压缩 java_简单的java字符串压缩(原创)

    复制内容到剪贴板 代码:package org.test;/** * 面试题目:现有一个字符串,其内容仅仅包含a---z,现在要进行网络传输,故需要减少网络传输的 * 大小,如何将字符串空间缩小.以下 ...

  6. 表达式计算器 java代码_Java实现简单的表达式计算器功能示例

    本文实例讲述了Java实现简单的表达式计算器功能.分享给大家供大家参考,具体如下: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例 ...

  7. Java制作一个盒子程序_编写一个简单的Java程序,模拟计算器的功能。

    提问:编写一个简单的Java程序,模拟计算器的功能. 网友回答: 程序参考: import java.awt.*; import java.awt.event.ActionEvent; import ...

  8. java自学——java的基本讲解和变量、字符串、运算符的简单介绍

    java自学--java的基本讲解和变量.数组.字符串.运算符的简单介绍 hello world程序 java程序的结构 java语句的组成介绍 关键字 标识符 标识符的命名规则 分隔符 注释符 空白 ...

  9. JAVA 简单的货款计算器

    JAVA 简单的货款计算器 以次输入输入年利率(annul interest rate),年数(number of year),货款金额(loan amont),会给你算出每月要付得款数(monthl ...

最新文章

  1. spring bean 创建失败的常见原因
  2. 受精卵或非“生命起始”?网友:教材是不是要改了……
  3. 数据库查询构建控件集Active Query Builder
  4. python解决https私密连接警告信息
  5. net自带二进制序列化,XML序列化和ProtoBuf序列化的压缩对比
  6. 技术员联盟win11系统64位专业版镜像v2021.08
  7. ORACLE 中ROWNUM用法总结!
  8. 京东:笔试题(合唱队找剩余的最小值,考场安排搬出的人数尽可能少)
  9. Linux和windows网络配置
  10. clustalX2使用以及相关的问题
  11. 【高等数学】微积分----教你如何简单地推导求导公式(一)
  12. 锐捷笔试题java_2018秋招锐捷笔试试题
  13. STM32开发基础知识——OLED开发基础
  14. 人工智能一词,正在被“夸克们”玩坏
  15. 微软官方制作纯净版的U盘启动盘(详细步骤)
  16. maven 跳过单元测试的3种方法
  17. 【机器学习】XgBoost 原理详解 数学推导
  18. 计算机领域常用的英文名称和缩写,计算机常用英文缩写.doc
  19. linux 查看网卡连接网线,查看网卡是否连接网线
  20. 【RTOS训练营】队列的读写、休眠和唤醒、常规应用、使用和晚课提问

热门文章

  1. 【修复】Word“文件发生错误”,无法保存文件
  2. python公开课模块_Course2-Python函数和模块
  3. 面向对象与面向过程的理解
  4. 王爽版汇编语言实验7 寻址方式在结构化数据访问中的应用
  5. 计算机电缆zr djypv,阻燃计算机电缆ZR-DJYPV
  6. 手机相册中的照片如何导入备忘录?
  7. 2023年徐汇区文化发展专项资金扶持项目申报指南
  8. [2012-08-21] HTTPC 的使用
  9. 【c语言】矩阵的创建
  10. 移动硬盘只读属性不能改