[Java]スキャナーでのnext()とnextLine()の違いと使用法

        Scannerクラスはキーボード入力に使用され、使用する場合はjava.util.Scannerパッケージをインポートする必要があります。一般的に使用されるキーボード入力方法は次のとおりです。

方法 説明
nextBoolean() ブール値として入力された次のタグをスキャンし、その値を返します
nextByte() バイトとして入力された次のタグをスキャンします
nextDouble() doubleとして入力された次のトークンをスキャンします
nextFloat フロートとして入力された次のタグをスキャンします
nextInt() intとして入力された次のトークンをスキャンします
nextLine() このスキャナーを現在の行に進め、スキップされた入力を返します
nextLong() 入力された次のトークンをスキャンする限り
nextShort() 短いものとして入力された次のトークンをスキャンします
次() このスキャナーの次の完全なトークンを見つけて返します

その中で、next()とnextLine()の戻り値は両方とも文字列タイプです。両方を使用する場合、いくつかの欠点があります。

nextLine()的缺点:
    1)nextLine()方法前面不能出现其他的键盘输入方法
    2)nextLine()方法前面可以有一个nextLine()方法
next()的缺点:
    不能接受空格和回车

nextLine():

package com.itheima;

import java.util.Scanner;

public class Test {
    // nextLine()的缺点:
    // nextLine()方法前面不能出现其他的键盘输入方法
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num=scanner.nextInt();
        System.out.println(num);
        System.out.println("请输入一个字符串:");
        String s=scanner.nextLine();
        System.out.println(s);
    }
}

        ただし、nextLine()がまだnextLint()メソッドである場合、出力は正常です。

package com.itheima;

import java.util.Scanner;

public class Test {
    // nextLine()的缺点:
    // nextLine()方法前面不能出现其他的键盘输入方法
    // nextLine()前面可以在有一个nextLine()
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String num=scanner.nextLine();
        System.out.println(num);
        System.out.println("请输入一个字符串:");
        String s=scanner.nextLine();
        System.out.println(s);
    }
}

次():

package com.itheima;

import java.util.Scanner;

public class Test {
    // next()的缺点:
    // 不能接受空格和回车
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String num=scanner.next();
        System.out.println(num);
    }
}

 

おすすめ

転載: blog.csdn.net/weixin_43267344/article/details/107717164