文章目录

抽空写了一个运算器,哈哈。

主要遇到两个问题:

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");
    }
}

}

文章目录