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

数组的第一个值

如何解决《数组的第一个值》经验,为你挑选了1个好方法。

我是java的新手.我的代码.我使用Scanner确定了使用nextint metod的String数组大小.然后ı已添加字符串与nextline metod.这似乎对我来说是正确的,但我不能看到我的数组的第一个值.这段代码有什么问题.

public class App {   
    public static void main(String[] args) {
        String[] arr;
        Scanner sc = new Scanner(System.in);
        System.out.println("write a number ");
        int n = sc.nextInt();
        arr = new String[n];

        for (int i = 0; i < n; i++) {

            arr[i] = sc.nextLine();

        }
        System.out.println(arr[0]);

    }
}

dasblinkenli.. 5

可以看到第一个条目,它恰好是一个空白String.

发生这种情况的原因是,当您调用int n = sc.nextInt();和用户按下时Enter,Scanner读取整数,但将行尾字符留在缓冲区中.

当你读到第一个字符串,sc.next()并且行尾"leftover"会立即被扫描,并作为第一个String空白时呈现给你的程序.

解决这个问题很简单:调用sc.next()之后sc.nextInt(),忽略结果.



1> dasblinkenli..:

可以看到第一个条目,它恰好是一个空白String.

发生这种情况的原因是,当您调用int n = sc.nextInt();和用户按下时Enter,Scanner读取整数,但将行尾字符留在缓冲区中.

当你读到第一个字符串,sc.next()并且行尾"leftover"会立即被扫描,并作为第一个String空白时呈现给你的程序.

解决这个问题很简单:调用sc.next()之后sc.nextInt(),忽略结果.

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