验证拆分字符串中的数字

时间:2015-10-28 15:00:14

标签: java validation split

import java.util.Scanner;

public class Calculator {
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in) ;
    System.out.println("Enter your two numbers and the operation with spaces between e.g 8 9 -");

    String calculation=scan.nextLine();

    String [] parts = calculation.split(" ");

    double part1 = Double.parseDouble(parts[0]);
    double part2 = Double.parseDouble(parts[1]);

    double answer = 0;
    boolean incorrectOperation = false;
    String operation = parts[2];
    switch (operation) {
        case "+":
            answer = part1 + part2;
            break;
        case "-":
            answer = part1 - part2;
            break;
        case "*":
            answer = part1 * part2;
            break;
        case "/":
            answer = part1 / part2;
            break;
        default:
            incorrectOperation = true;
    }

    String ans;
    if(incorrectOperation) {
        ans = "Please use +, -, * or / for operation";
    } else {
        ans = String.valueOf(answer);
    }

    System.out.println(ans);
  }
}

我使用拆分字符串帮助了解这个计算器,我想知道是否有人可以提供帮助,或者让我知道如何验证已经拆分的后修复表达式,该操作已经使用布尔验证了但是我需要知道我是否可以验证整数?

感谢

4 个答案:

答案 0 :(得分:2)

documentation中所述,您可以捕获NumberFormatException。 在这种情况下,您可以设置布尔值和错误消息。

例如:

double part1;
try {
  part1 = Double.parseDouble(parts[0]);
} catch(NumberFormatException e) {
  System.err.println("The first argument was not a number.");
  System.exit(1);
}

答案 1 :(得分:1)

使用Integer.parseInt(myString)并将其包装在try / catch中,这样如果myString无效,则捕获异常。

答案 2 :(得分:0)

解析int数的标准方法是

public static int parseInt(String s) throws NumberFormatException

答案 3 :(得分:0)

您可以使用Scanner方法hasNextDouble检查下一个令牌是否可以作为double读取,然后使用nextDouble进行检索。< / p>