1、hasNext()與next()
在默認情況下,Scanner使用空格和回車作爲多個輸入項之間的分隔符
hasNext()
:判斷是否還有下一個輸入項。next()
:獲取下一個輸入項。
對比下面的幾個示例:
1、示例1
public class ScannerDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//判斷sc中是否有下一個輸入項,多個輸入項以空格分開
while(sc.hasNext()) {
String s1 = sc.next();
System.out.println("s1="+s1);
}
}
}
2、示例2
public class ScannerDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//判斷sc中是否有下一個輸入項,多個輸入項以空格分開
while(sc.hasNext()) {
String s1 = sc.next();//獲取第1個輸入項
String s2 = sc.next();//獲取第2個輸入項
System.out.println("s1="+s1);
System.out.println("s2="+s2);
}
}
}
3、示例3
public class ScannerDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//判斷sc中是否有下一個輸入項,多個輸入項以空格分開
while(sc.hasNext()) {
String s1 = sc.next();//獲取第1個輸入項
String s2 = sc.next();//獲取第2個輸入項
String s3 = sc.next();//獲取第3個輸入項
System.out.println("s1="+s1);
System.out.println("s2="+s2);
System.out.println("s3="+s3);
}
}
}
4、示例4
public class ScannerDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//判斷sc中是否有下一個輸入項,多個輸入項以空格分開
while(sc.hasNext()) {
String s1 = sc.next();
String s2 = sc.next();
System.out.println("s1="+s1);
System.out.println("s2="+s2);
}
}
}
對上述代碼的解析:
2、hasNextLine()與nextLine()
- boolean hasNextLine():輸入源中是否還有下一行。
- String nextLine():獲取輸入源中的下一行的字符串。
即只用回車作爲輸入項的分隔符,下一行就是一個輸入項
示例1:只要按下回車鍵立馬就會輸出
public class ScannerDemo5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//判斷sc中是否有下一個輸入項,多個輸入項以enter分開
while(sc.hasNextLine()) {
String s1 = sc.nextLine();
System.out.println("s1="+s1);
}
}
}
示例2:按下第一個回車鍵enter並不會輸出,按下第二個回車鍵輸出,原因在於如果只有一行字符串,那麼還沒走到打印Sout就退出循環了
public class ScannerDemo5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//判斷sc中是否有下一個輸入項,多個輸入項以enter分開
while(sc.hasNextLine()) {
String s1 = sc.nextLine();
String s2 = sc.nextLine();
System.out.println("s1="+s1);
System.out.println("s2="+s2);
}
}
}
示例3:
public class ScannerDemo5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//判斷sc中是否有下一個輸入項,多個輸入項以enter分開
while(sc.hasNextLine()) {
String s1 = sc.nextLine();
String s2 = sc.nextLine();
System.out.println("s1="+s1);
System.out.println("s2="+s2);
}
}
}
示例4:
public class ScannerDemo5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//判斷sc中是否有下一個輸入項,多個輸入項以enter分開
while(sc.hasNextLine()) {
String s1 = sc.nextLine();
System.out.println("s1="+s1);
}
}
}