java.util.Scanner獲取輸入的整數,長整型,字符串等:
代碼如下/package com.color.program.ball;
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
//receive string
String str = s.next();
//receive integer
Integer i = s.nextInt();
//receive double
Double d = s.nextDouble();
System.out.println(str+i+d);
}
}
如用三元運算符判斷一個數是奇數還是偶數:
import java.util.Scanner;
public class Ou {
public static void main(String[] args) {
System.out.println("請輸入一個整數:");
Scanner reader = new Scanner(System.in);
long a = reader.nextLong();
String str = (a%2 )==0 ? "偶數":"奇數";
System.out.println("結果是:"+str);
}
}
一、掃描控制台輸入
這個例子是常常會用到,但是如果沒有Scanner,你寫寫就知道多難受了。
當通過new Scanner(System.in)創建一個Scanner,控制台會一直等待輸入,直到敲回車鍵結束,把所輸入的內容傳給Scanner,作為掃描對象。如果要獲取輸入的內容,則只需要調用Scanner的nextLine()方法即可。
先寫這裡吧,有空再繼續完善。
二、如果說Scanner使用簡便,不如說Scanner的構造器支持多種方式,構建Scanner的對象很方便。
可以從字符串(Readable)、輸入流、文件等等來直接構建Scanner對象,有了Scanner了,就可以逐段(根據正則分隔式)來掃描整個文本,並對掃描後的結果做想要的處理。
package test;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.regex.MatchResult;
public class TestScanner {
public static void main(String[] args) throws FileNotFoundException {
// 鍵盤輸入
Scanner sc = new Scanner(System.in);
System.out.println(sc.nextInt());
System.out.println("---------------");
// 文本掃描
Scanner sc2 = new Scanner(new File("D://1.txt"));
while (sc2.hasNextDouble()) {
System.out.println(sc2.nextDouble());
}
System.out.println("---------------");
// 正則解析
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();
System.out.println("---------------");
// 正則-匹配組
String input2 = "1 fish 2 fish red fish blue fish";
Scanner s2 = new Scanner(input2);
s2.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
MatchResult result = s2.match();
for (int i = 1; i <= result.groupCount(); i++)
System.out.println(result.group(i));
s.close();
}
}
以下代碼使 long 類型可以通過 myNumbers 文件中的項分配:
三、Scanner默認使用空格作為分割符來分隔文本,但允許你指定新的分隔符(支持正則表達式)
使用默認的空格分隔符:
再來個例子,根據pattern字符串來匹配
代碼