我們一般使用System.out.println("") 向控制臺輸出數據,如果要從控制臺輸入數據,需用到Scanner類
Java 5添加了java.util.Scanner類,這是一個用於掃描輸入文本的新的實用程序。它是以前的StringTokenizer和Matcher類之間的某種結合。由於任何數據都必須通過同一模式的捕獲組檢索或通過使用一個索引來檢索文本的各個部分。於是可以結合使用正則表達式和從輸入流中檢索特定類型數據項的方法。這樣,除了能使用正則表達式之外,Scanner類還可以任意地對字符串和基本類型(如int和double)的數據進行分析。藉助於Scanner,可以針對任何要處理的文本內容編寫自定義的語法分析器。
默認情況下,Scanner以空格和換行(空格鍵、Tab鍵、Enter鍵)作為分隔符。
import java.util.Scanner;public class HelloScanner { public static void main(String[] args) { int sum; Scanner s = new Scanner(System.in); int a = s.nextInt(); System.out.println("第一個整數: " +a); int b = s.nextInt(); System.out.println("第二個整數:" +b); sum = a+b; System.out.println("求和:" +sum); }}
import java.util.Scanner;public class HelloScanner { public static void main(String[] args) { //scanner讀取整數 int sum; Scanner s = new Scanner(System.in); int a = s.nextInt(); System.out.println("第一個整數: " +a); int b = s.nextInt(); System.out.println("第二個整數:" +b); sum = a+b; System.out.println("求和:" +sum); //scanner讀取浮點數 Scanner sf = new Scanner(System.in); float c = sf.nextFloat(); System.out.println("讀取的浮點數的值是:" +c); }}
//scanner讀取字符串Scanner ss = new Scanner(System.in);String d = ss.nextLine();System.out.println("讀取的字符串是:"+d);
如果在通過nextInt()讀取了整數後,再接著讀取字符串,讀出來的是回車換行:"\r\n",因為nextInt僅僅讀取數字信息,而不會讀取回車換行"\r\n".
所以,如果在業務上需要讀取了整數後,接著讀取字符串,那麼就應該連續執行兩次nextLine(),第一次是取走回車換行,第二次才是讀取真正的字符串
//scanner讀取整數後讀取字符串Scanner sn = new Scanner(System.in);int e = sn.nextInt();System.out.println("讀取整數是:"+e);String f = sn.nextLine();String g = sn.nextLine();System.out.println("讀取字符串是:"+f);System.out.println("讀取字符串是:"+g);
import java.util.Scanner;public class HelloScanner { public static void main(String[] args) { //scanner讀取整數 System.out.println("》》》scanner讀取整數《《《"); int sum; Scanner s = new Scanner(System.in); int a = s.nextInt(); System.out.println("第一個整數: " +a); int b = s.nextInt(); System.out.println("第二個整數:" +b); sum = a+b; System.out.println("求和:" +sum); //scanner讀取浮點數 System.out.println("》》》scanner讀取浮點數《《《"); Scanner sf = new Scanner(System.in); float c = sf.nextFloat(); System.out.println("讀取的浮點數的值是:" +c); //scanner讀取字符串 System.out.println("》》》scanner讀取字符串《《《"); Scanner ss = new Scanner(System.in); String d = ss.nextLine(); System.out.println("讀取的字符串是:"+d); //scanner讀取整數後讀取字符串 System.out.println("》》》scanner讀取整數後讀取字符串《《《"); Scanner sn = new Scanner(System.in); int e = sn.nextInt(); System.out.println("讀取整數是:"+e); String f = sn.nextLine(); String g = sn.nextLine(); System.out.println("讀取字符串是:"+f); System.out.println("讀取字符串是:"+g); }}
這個類還是比較有用的,大家也可以自己測試玩一下~