Java吸收換行符


        今天做題遇到的……

        由於讀入的字符串可能包含空格,所以采用nextLine。

int n = sc.nextInt();
for(int i=0; i<n; i++) {
  String s = sc.nextLine();
  System.out.println(s);
}

        上面的代碼只會輸出n-1個字符串,最后一個沒有輸出,原因nextInt()方法會讀取下一個int型標志的token,但是焦點不會移動到下一行,仍然處在這一行上。當使用nextLine()方法時會讀取改行剩余的所有的內容,包括換行符,然后把焦點移動到下一行的開頭,所以這樣就無法接收到下一行輸入的String類型的變量。

        解決方案

int n = sc.nextInt();
for(int i=0; i<n; i++) {
  String s = sc.next();
  s += sc.nextLine();
  System.out.println(s);
}

        原因: next()方法是以換行或者空格符為分界線接收下一個String類型變量,不過並沒有提取換行或者空格,所以生成的s並不包含換行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM