Java学习笔记(三)加减乘除运算器
文章目录
抽空写了一个运算器,哈哈。
主要遇到两个问题:
1、equals()与==的区别:
equals():判断内容是否相等;
==:判断对象是否相等;
2、正则表达式:
看了好久正则表达式,还是不太清晰,哈哈:
判断整数的数字:
1 | "[0-9]*$" |
判断可以为小数的数字:
1 | "([-\\+]?[1-9]([0-9]*)(\\.[0-9]+)?)|(^0$)" |
下面是完整代码:
import java.util.Scanner;
import java.util.regex.Pattern;
public class Operating {
public static void main(String[] args) {
System.out.println("请输入想做得的运算:");
System.out.println("1. 加法:");
System.out.println("2. 减法:");
System.out.println("3. 乘法:");
System.out.println("4. 除法:");
String c= InputData();
//判断输入是否为1-4之间整数
Pattern pattern=Pattern.compile("[1-4]*");
while(pattern.matcher(c).matches()==false)
{
System.out.println("输入错误,请重新输入");
c=InputData();
}
System.out.println("请输入第一个数字,a:");
String a=InputData();
System.out.println("请输入第二个数字,b:");
String b=InputData();
String output=getOutcome(a,b,c);
System.out.println("结果为:"+output);
}
/**
* @param 输入函数,判断是否输入为数字,否则继续输入
* @return
*/
public static String InputData(){
int m=1;
Scanner put=new Scanner(System.in);
String data=put.nextLine();
while(m==1)
{
if(Isnumber(data)==true)
{
m=0;
}
else{
m=1;
System.out.println("输入错误,请重新输入");
data=put.nextLine();
}
}
return data;
}
/**
*
* @param 判断输入字符串是否为数字
* @return
*/
public static boolean Isnumber(String data){
Pattern pattern=Pattern.compile("([-\\+]?[1-9]([0-9]*)(\\.[0-9]+)?)|(^0$)");
return pattern.matcher(data).matches();
}
/**
*
* @return 判断运算类别,并计算返回结果
*/
public static String getOutcome(String a,String b,String c){
if(c.equals("1"))
{
return getadd(a,b);
}
else if(c.equals("2"))
{
return getsubtract(a,b);
}
else if(c.equals("3"))
{
return getmultiply(a,b);
}
else if(c.equals("4"))
{
if(b.equals("0"))
{
int m=1;
while(m==1)
{
System.out.println("除数不能为0,请重新输入:");
b=InputData();
if(!b.equals("0"))
{
m=0;
}
}
}
return getdivision(a,b);
}
else
{
return "输入错误";
}
}
/**
*
* @param a
* @param b
* @return 加法
*/
public static String getadd(String a,String b){
double m=Double.parseDouble(a);
double n=Double.parseDouble(b);
double c=m+n;
return (""+c);
}
/**
*
* @param a
* @param b
* @return 减法
*/
public static String getsubtract(String a,String b){
double m=Double.parseDouble(a);
double n=Double.parseDouble(b);
double c=m-n;
return (""+c);
}
/**
*
* @param a
* @param b
* @return 乘法
*/
public static String getmultiply(String a,String b){
double m=Double.parseDouble(a);
double n=Double.parseDouble(b);
double c=m*n;
return (""+c);
}
/**
*
* @param a
* @param b
* @return 除法
*/
public static String getdivision(String a,String b){
double m=Double.parseDouble(a);
double n=Double.parseDouble(b);
if(n!=0)
{
double c=m/n;
return (""+c);
}
else
{
return("除数不能为0");
}
}
}