談談Scanner類的next()和hasNext()方法

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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章