java中的Scanner探索解惑

    xiaoxiao2025-02-19  14

    最近在刷题,准备校招! 对Scanner有一些不解; 有的时候空格代表了下个输入,有的时候无法读取! 当然了,正常输入是没有问题的。。。 结论是:

    如果要一次性将数据输入(复制粘贴),Scanner实例定义在循环体外

    @Test public void test() { int n=3; while(n>0){ Scanner input = new Scanner(System.in); int a=input.nextInt(); System.out.println("##"+a+"##"); n--; } }

    123 232 23 23 ::123:: 23 ::23:: 45 ::45::

    在循环中通过连续输入空格隔开的方式无法全部读取;

    此时我们想读取一行数据呢?

    @Test public void test() { Scanner input = new Scanner(System.in); String a=input.nextLine(); System.out.println("::"+a+"::"); }

    123 234 456 ::123 234 456::

    不是有个next()方法读取字符串吗?

    @Test public void test() { Scanner input = new Scanner(System.in); String a=input.next(); System.out.println("::"+a+"::"); }

    123 23 232 89 ::123::

    循环可以吗?

    @Test public void test() { int n=3; while(n>0){ Scanner input = new Scanner(System.in); String a=input.next(); System.out.println("::"+a+"::"); n--; } }

    123 23 4545 67 ::123:: 23 34h 908 ::23:: fd fg hj ::fd::

    @Test public void test() { int[] a=new int[4]; for(int i=0;i<4;i++){ Scanner input = new Scanner(System.in); a[i]=input.nextInt(); System.out.println("::"+a[i]+"::"); } }

    123 6 789 56 ::123:: 99 ::99::

    123 45 78 2 ::123::

    @Test public void test() { for(int i=0;i<4;i++){ Scanner input = new Scanner(System.in); String a=input.nextLine(); System.out.println("::"+a+"::"); } }

    123 45 78 2 ::123::

    到这里感觉通过训话无法一次性将数据读取;

    @Test public void test() { Scanner input = new Scanner(System.in); String a=input.nextLine(); System.out.println("::"+a+"::"); String b=input.nextLine(); System.out.println("::"+b+"::"); String c=input.nextLine(); System.out.println("::"+c+"::"); String d=input.nextLine(); System.out.println("::"+d+"::"); }

    123 45 78 2 ::123:: ::45:: ::78:: ::2::

    这个就可以一次读取; 那么问题就来了,我的试题中也是循环但可以一次读取,比较后发现Scanner实例定义在循环体外。

    @Test public void test() { Scanner input = new Scanner(System.in); for(int i=0;i<4;i++){ String nums = input.nextLine(); System.out.println("::"+nums+"::"); } }

    5 6 -1 5 4 -7 7 0 6 -1 1 -6 7 -5 5 6 -1 5 4 -7 7 0 6 -1 1 -6 7 -5 ::5 6 -1 5 4 -7:: ::7 0 6 -1 1 -6 7 -5:: ::5 6 -1 5 4 -7:: ::7 0 6 -1 1 -6 7 -5::

    转载请注明原文地址: https://ju.6miu.com/read-1296593.html
    最新回复(0)