生活随笔
收集整理的這篇文章主要介紹了
牛客OJ输入输出
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
牛客的練習(xí)場網(wǎng)址是:https://ac.nowcoder.com/acm/contest/5657#question
hasNextLine() 與hasNext()
對于一道oj 題目的輸入是這樣的
7 15 9 5
采用java語言的話,有的同學(xué)這樣處理輸入輸出
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {int n = in.nextInt();//處理代碼略
}
牛客網(wǎng)的系統(tǒng)會提示錯誤,但是如果把hasNextLine改成hasNext或者h(yuǎn)asNextInt的話,就會提示正確
while (in.hasNextInt()) {int n = in.nextInt();//處理代碼略
}
采用has xxxx的話,后面也要用next xxxx。比如前面用hasNextLine,那么后面要用 nextLine 來處理輸入。
說一下兩個方法的區(qū)別
hasNext是檢查是否有非空字符。
hasNextLine是檢查輸入中是否還有l(wèi)inePattern。其中LinePattern其實是匹配一個正則表達(dá)式。
private static final String LINE_SEPARATOR_PATTERN ="\r\n|[\n\r\u2028\u2029\u0085]";
private static final String LINE_PATTERN = ".*("+LINE_SEPARATOR_PATTERN+")|.+$";
判題系統(tǒng)的所有測試用例都是存儲在文件中,在上面的例子中,測試用例的文件為
7 15 9 5
當(dāng)處理完5后,沒有非空字符了,hasNext返回了false,但是在linux系統(tǒng)中,5后面還有一個換行符\n,0X0A(有興趣的同學(xué)可以自己創(chuàng)建然后用二進制方式看一下文件)
所以 hasNextLine會返回true,但是其實后面并沒有可以讀的元素了,從而下面的in.nextInt會拋異常。
題目
輸入描述:
輸入數(shù)據(jù)有多組, 每行表示一組輸入數(shù)據(jù)。 每行不定有n個整數(shù),空格隔開。(1 <= n <= 100)。
輸出描述:
每組數(shù)據(jù)輸出求和的結(jié)果
import java.util.Scanner;
import java.io.*;
public class Main{public static void main(String[] args) throws Exception{BufferedReader in = new BufferedReader(new InputStreamReader(System.in));String str = null;while((str=in.readLine())!=null){String[] nums = str.split(" ");int sum = 0;for(int i = 0;i< nums.length;i++){sum += Integer.parseInt(nums[i]);}System.out.println(sum);}}
}
import java.util.Scanner;
public class Main{public static void main(String args[]){Scanner sc=new Scanner(System.in);while(sc.hasNextLine()){String[] a=sc.nextLine().split(" ");int sum =0;for(String m:a){sum+=Integer.parseInt(m);}System.out.println(sum);}}
}
import java.io.*;
public class Main{public static void main(String args[]) throws Exception{BufferedReader in=new BufferedReader(new InputStreamReader(System.in));String line=null;while((line=in.readLine())!=null){String[] m=line.split(" ");int sum=0;for(String n:m){sum+=Integer.parseInt(n); }System.out.println(sum);} }
}
java.io.* 中有BufferedReader 和InputStreamReader
java.util.* 中有Arrays.sort() 和Scanner
總結(jié)
以上是生活随笔為你收集整理的牛客OJ输入输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。