1、基本語法
1.1基本使用方法
本篇博客重點nextLine()會讀取換行(’\r’),但是不會進行輸出,
Java中Scanner類中的方法next()和nextLine()都是吸取輸入臺輸入的字符,區別:
-
next()不會吸取字符前/后的空格/Tab鍵,只吸取字符,開始吸取字符(字符前后不算)直到遇到空格/Tab鍵/回車截止吸取;
-
nextLine()吸取字符前后的空格/Tab鍵,回車鍵截止,
- 輸入兩行字串:
我愛學JAVA 我真的很愛愛學JAVA
我真的很愛很愛學JAVA - 期望輸出結果:
我愛學JAVA 我真的很愛愛學JAVA
我真的很愛很愛學JAVA
package scanner;
import java.util.Scanner;
public class Sun_01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine();
String str=scanner.next();
System.out.println(str1);
System.out.println(str);
scanner.close();
}
}

沒錯,和我們期望輸出結果一樣,
2、nextLine()易錯點
2.1 nextLine()使用錯誤案例
我們第一行使用next()進行讀入,第二行使用nextLine()進行讀入兩行字串
- 輸入兩行字串:
我愛學JAVA
我愛學JAVA 我真的很愛愛學JAVA - 期望輸出結果:
我愛學JAVA
我愛學JAVA 我真的很愛愛學JAVA
package scanner;
import java.util.Scanner;
public class Sun_01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
String str2=scanner.nextLine();
System.out.println(str);
System.out.println(str2);
scanner.close();
}
}

? 會發現,輸入臺輸入“我愛學JAVA"后接著輸出了,與我們期望輸出結果不一樣,
到底是因為什么呢?
? Scanner是一個掃描器,我們錄取到鍵盤的資料,先存到快取區等待讀取,它判斷讀取結束的標示是 空白符;比如空格,回車,tab 等等,
? next()方法讀取到空白符就結束,也就是讀取完“我愛學JAVA”;
? nextLine()只讀取到回車結束也就是“\r”;
通俗解釋為:因為next()讀取到空白符前的資料時結束了,然后把回車“\r”留給了nextLine();所以上面nextLine()沒有輸出,不輸出不代表沒資料,是接到了空(回車“/r”)的資料,
正確的解決方式:
package scanner;
import java.util.Scanner;
public class Sun_01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
String str1=scanner.nextLine();
String str2=scanner.nextLine();
System.out.println(str);
System.out.println(str2);
scanner.close();
}
}

解決方式為多用一個nextLine()將換行讀入,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/197269.html
標籤:java
下一篇:【零基礎小白的華麗蛻變】創建Dynamic Web Project專案之環境搭建---JDK下載及安裝(附案例)
