计算器 输入式子计算结果 (字符串、抛异常)
1 import java.util.Scanner; 2 3 public class JiSuanQi { 4 public static void execute(int first_number, int second_number) 5 throws MyException { 6 // 手写异常不能让输入的数为负数 7 if (first_number < 0 || second_number < 0) { 8 throw new MyException("参数不能为负数"); 9 } 10 } 11 12 public static void main(String[] args) { 13 for (;;) { 14 Scanner input = new Scanner(System.in); 15 System.out.println("请输入式子"); 16 String shizi = input.nextLine(); 17 String[] allfuhao = { "+", "-", "*", "/" }; 18 jiSuan(shizi, allfuhao); 19 20 } 21 } 22 23 private static void jiSuan(String shizi, String[] allfuhao) { 24 for (int i = 0; i < allfuhao.length; i++) { 25 for (int j = 0; j < shizi.length(); j++) { 26 String fu = String.valueOf(shizi.charAt(j)); 27 if (allfuhao[i].equals(fu)) { 28 try { 29 String first = shizi.substring(0, j); 30 Integer first_number = Integer.parseInt(first); 31 String second = shizi.substring(j + 1); 32 Integer second_number = Integer.parseInt(second); 33 execute(first_number, second_number); 34 if (i == 0) { 35 System.out.println(shizi + "=" 36 + (first_number + second_number)); 37 } else if (i == 1) { 38 System.out.println(shizi + "=" 39 + (first_number - second_number)); 40 } else if (i == 2) { 41 System.out.println(shizi + "=" 42 + (first_number * second_number)); 43 } else if (i == 3) { 44 45 System.out.println(shizi + "=" 46 + (first_number / second_number)); 47 } 48 49 } catch (MyException e) { 50 System.out.println("不允许使用负数"); 51 } catch (NumberFormatException e) { 52 System.out.println("不是数字"); 53 } catch (ArithmeticException e) { 54 System.out.println("除数不能为0"); 55 } 56 return; 57 } 58 59 } 60 61 } 62 System.out.println("没找到运算符号,重新输入"); 63 } 64 }
1 public class MyException extends Exception { 2 3 public MyException(){ 4 super(); 5 } 6 public MyException(String Exception ){ 7 super(Exception); 8 9 } 10 }