1. 程式人生 > >PAT 牛客網1(Scanner用法總結) ----A+B>C

PAT 牛客網1(Scanner用法總結) ----A+B>C

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的用法
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);
             }
          }
      }
}
注意:本題 注意Scanner的使用方法

          注意數字大小和應該採用的資料型別

一個簡單的文字掃描器,可以使用正則表示式解析原始型別和字串。

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();