Java Scanner類

要從標準輸入讀取數字,必須將其讀取爲字符串並將其解析爲數字。java.util包中的Scanner類根據模式讀取並解析基本類型和字符串中的文本。文本源可以是InputStream,文件,String對象或可讀對象。

可以使用Scanner對象從標準輸入System.in中讀取原始類型值。以下代碼說明了如何使用Scanner類構建一個小型計算器來執行加,減,乘和除。

import java.util.Scanner;

public class Calculator {
  public static void main(String[] args) {
    System.out.println("type something like: 1+3");
    Scanner scanner = new Scanner(System.in);
    double n1 = Double.NaN;
    double n2 = Double.NaN;
    String operation = null;

    try {
      n1 = scanner.nextDouble();
      operation = scanner.next();
      n2 = scanner.nextDouble();
      double result = calculate(n1, n2, operation);
      System.out.printf("%s %s  %s  = %.2f%n", n1, operation, n2, result);
    }

    catch (Exception e) {
      System.out.println("An invalid expression.");
    }
  }

  public static double calculate(double op1, double op2, String operation) {
    switch (operation) {
    case "+":
      return op1 + op2;
    case "-":
      return op1 - op2;
    case "*":
      return op1 * op2;
    case "/":
      return op1 / op2;
    }

    return Double.NaN;
  }
}

上面的代碼生成以下結果。

type something like: 1+3
12
+
34
12.0 +  34.0  = 46.00