Java学习——java的Scanner类

1、通过 Scanner 类来获取用户的输入,Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据

next()方法:

package test_script;

import java.util.Scanner;

public class ScanerDemo {
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);

        System.out.println("next方式接收:");
        if(scan.hasNext()){
            String str1=scan.next();
            System.out.println("输入的数据为:"+str1);
        }
      
        scan.close();
    }
}

运行结果:

next方式接收:
wd12343454 456tryth
输入的数据为:wd12343454
nextLine()方法:

package test_script;

import java.util.Scanner;

public class ScanerDemo {
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);

        System.out.println("nextLine方式接受:");
        if(scan.hasNextLine()){
            String str2=scan.nextLine();
            System.out.println("输入的数据为:"+str2);
        }
        scan.close();
    }
}

运行结果:

nextLine方式接受:
132rsers 54ytrttht etyutyj
输入的数据为:132rsers 54ytrttht etyutyj

注意:next()和nextLine()方法返回的都是String类型的数据;

next() 与 nextLine() 区别

next():

  • 1、一定要读取到有效字符后才可以结束输入。
  • 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next() 不能得到带有空格的字符串。

nextLine():

  • 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  • 2、可以获得空白
  • 一个回车符代表一个数据;

2、如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取

package test_script;

import java.util.Scanner;

public class ScannerDemo1 {
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        int i=0;
        float f=0.0f;
        System.out.println("输入整数:");
        if(scan.hasNextInt()){
            i=scan.nextInt();
            System.out.println("整数数据:"+i);
        }else{
            System.out.println("输入的不是整数!");
        }
        System.out.println("输入小数:");
        if(scan.hasNextFloat()){
            f=scan.nextFloat();
            System.out.println("小数数据:"+f);
        }else{
            System.out.println("输入的不是小数");
        }

        scan.close();
    }
}

运行结果:

输入整数:
3.5 5
输入的不是整数!
输入小数:
小数数据:3.5

注意:此外还有hasNextByte\hasNextLong等类型的;

3、从键盘中输入10个存入数组中:

package test_script;

import java.util.Scanner;

public class ScannerDemo3 {

    static int number = 10;
    static int[] t1 = new int[number];
    static int[] t2 = new int[number];

    static void input() {
        System.out.println("请输入T1序列:");
        Scanner in_t1 = new Scanner(System.in);//循环输入T1数组
            for (int i = 0; i < number; i++) {
                t1[i] = in_t1.nextInt();
            }
        System.out.println("请输入T2序列:");
        Scanner in_t2 = new Scanner(System.in);//循环输入T2数组
            for (int i = 0; i < number; i++) {
                t2[i] = in_t2.nextInt();
            }
        System.out.println("T1数组:");
        for (int i = 0; i < number; i++) {              //输出两个数组
            System.out.print("[" + t1[i] + "]");
        }
        System.out.println("\nT2数组:");
        for (int i = 0; i < number; i++) {
            System.out.print("[" + t2[i] + "]");
        }
    }
    public static void main(String[] args) {
        input();
    }
}

运行结果:

请输入T1序列:
0 98 8 7 6 5 4 3 2 1
请输入T2序列:
0 12 3 4 5 6 7 8 9 2
T1数组:
[0][98][8][7][6][5][4][3][2][1]
T2数组:
[0][12][3][4][5][6][7][8][9][2]
Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/weixin_39430584/article/details/82592634
今日推荐