PAT 牛客網1(Scanner用法總結) ----A+B>C
阿新 • • 發佈:2019-02-16
1. 給定區間[-2的31次方, 2的31次方]內的3個整數A、B和C,請判斷A+B是否大於C。
輸入描述:
輸入第1行給出正整數T(<=10),是測試用例的個數。隨後給出T組測試用例,每組佔一行,順序給出A、B和C。整數間以空格分隔。
輸出描述:
對每組測試用例,在一行中輸出“Case #X: true”如果A+B>C,否則輸出“Case #X: false”,其中X是測試用例的編號(從1開始)。
輸入
4 1 2 3 2 3 4 2147483647 0 2147483646 0 -2147483648 -2147483647
輸出
Case #1: false Case #2: true Case #3: true Case #4: false
程式碼:
注意:本題 注意Scanner的使用方法//注意Scanner的用法 import java.util.Scanner; public class Main{ public static void main(String [] args){ Scanner sc=new Scanner(System.in); //獲取鍵盤輸入 int num=0; //初始鍵盤輸入次數的數字記錄 int i=0; long a=0; //獲取到的3個數字輸入 long b=0; long c=0; num=sc.nextInt(); while(i++< num){ a=sc.nextLong(); b=sc.nextLong(); c=sc.nextLong(); if((a+b)>c){ System.out.println("Case #"+i+": "+true); }else{ System.out.println("Case #"+i+": "+false); } } } }
注意數字大小和應該採用的資料型別
一個簡單的文字掃描器,可以使用正則表示式解析原始型別和字串。A Scanner
分隔符模式將輸入打破到令牌,預設情況下匹配空格。然後可以使用各種next方法將得到的令牌轉換成不同型別的值。
例如,該程式碼允許使用者從System.in讀取一個數字:
Scanner sc = new Scanner(System.in); int i = sc.nextInt();
另一個例子,該程式碼允許從檔案myNumbers
中的條目分配long
型別:
Scanner sc = new Scanner
(new File("myNumbers")); while (sc.hasNextLong()) { long aLong = sc.nextLong(); }
掃描器也可以使用除空格之外的分隔符。 此示例從字串讀取幾個專案:
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();
列印以下輸出:
1 2 red blue
可以使用此程式碼生成相同的輸出,該程式碼使用正則表示式一次解析所有四個令牌:
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input); s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)"); MatchResult result = s.match(); for (int i=1; i<=result.groupCount(); i++) System.out.println(result.group(i)); s.close();