当前位置:  开发笔记 > 编程语言 > 正文

如何使用Scanner类中的hasNext()?

如何解决《如何使用Scanner类中的hasNext()?》经验,为你挑选了1个好方法。



1> Willi Mentze..:

您的代码不起作用,因为您Scanner在每次递归调用中都创建了一个新对象.不管怎么说,你不应该使用递归,而是迭代地进行.

迭代版

public class Solution {

    public static void main(String[] args) {

        Scanner s = new Scanner(System.in);
        int count = 1;

        while(s.hasNext()) {
            String ns = s.nextLine();
            System.out.println(count + " " + ns);
            count++;
        }
    }
}

递归版

public class Solution {

    private Scanner s;

    public static void main(String[] args) {

        s = new Scanner(System.in); // initialize only once
        check(1);
    }

    public static void check(int count) {
        if(s.hasNext()) {
            String ns = s.nextLine();
            System.out.println(count + " " + ns);
            check(count + 1);
        }
    }   
}

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有