逗号运算符java_简单的java计算器 实现了重复标点及运算符连点限制
今天练习了一个简约的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计算器 实现了重复标点及运算符连点限制相关推荐
- 一个最简单的java计算器
学习java的第三天,想检验一下前两天的学习成果,于是仿照着以前做的C语言计算器做了一个最为简单的java计算器(望大哥们指导) 总结:遇到的问题 0.上传博客要封面emmmm,不知道传什么,那就附一 ...
- 口袋妖怪 java_简单的Java口袋妖怪扑灭模拟器
我已经写了一个类创建和战斗口袋妖怪,但我不知道如何调用测试类中的战斗方法,以测试我写的类.简单的Java口袋妖怪扑灭模拟器 我的任务是编写和测试模拟两个口袋妖怪之间的战斗模拟.每个口袋妖怪都有一个健康 ...
- surfacecontrol.java_简单说说JAVA层中Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系...
1.Surface Surface extends Object implements Parcelable java.lang.Object android.view.Surface Class O ...
- 线程池简单实现java_简单实现java线程池
package com.ty.thread; importjava.util.HashSet;importjava.util.Set;importjava.util.concurrent.Blocki ...
- 字符串 压缩 java_简单的java字符串压缩(原创)
复制内容到剪贴板 代码:package org.test;/** * 面试题目:现有一个字符串,其内容仅仅包含a---z,现在要进行网络传输,故需要减少网络传输的 * 大小,如何将字符串空间缩小.以下 ...
- 表达式计算器 java代码_Java实现简单的表达式计算器功能示例
本文实例讲述了Java实现简单的表达式计算器功能.分享给大家供大家参考,具体如下: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例 ...
- Java制作一个盒子程序_编写一个简单的Java程序,模拟计算器的功能。
提问:编写一个简单的Java程序,模拟计算器的功能. 网友回答: 程序参考: import java.awt.*; import java.awt.event.ActionEvent; import ...
- java自学——java的基本讲解和变量、字符串、运算符的简单介绍
java自学--java的基本讲解和变量.数组.字符串.运算符的简单介绍 hello world程序 java程序的结构 java语句的组成介绍 关键字 标识符 标识符的命名规则 分隔符 注释符 空白 ...
- JAVA 简单的货款计算器
JAVA 简单的货款计算器 以次输入输入年利率(annul interest rate),年数(number of year),货款金额(loan amont),会给你算出每月要付得款数(monthl ...
最新文章
- spring bean 创建失败的常见原因
- 受精卵或非“生命起始”?网友:教材是不是要改了……
- 数据库查询构建控件集Active Query Builder
- python解决https私密连接警告信息
- net自带二进制序列化,XML序列化和ProtoBuf序列化的压缩对比
- 技术员联盟win11系统64位专业版镜像v2021.08
- ORACLE 中ROWNUM用法总结!
- 京东:笔试题(合唱队找剩余的最小值,考场安排搬出的人数尽可能少)
- Linux和windows网络配置
- clustalX2使用以及相关的问题
- 【高等数学】微积分----教你如何简单地推导求导公式(一)
- 锐捷笔试题java_2018秋招锐捷笔试试题
- STM32开发基础知识——OLED开发基础
- 人工智能一词,正在被“夸克们”玩坏
- 微软官方制作纯净版的U盘启动盘(详细步骤)
- maven 跳过单元测试的3种方法
- 【机器学习】XgBoost 原理详解 数学推导
- 计算机领域常用的英文名称和缩写,计算机常用英文缩写.doc
- linux 查看网卡连接网线,查看网卡是否连接网线
- 【RTOS训练营】队列的读写、休眠和唤醒、常规应用、使用和晚课提问