我是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()
,忽略结果.
你可以看到第一个条目,它恰好是一个空白String
.
发生这种情况的原因是,当您调用int n = sc.nextInt();
和用户按下时Enter,Scanner
读取整数,但将行尾字符留在缓冲区中.
当你读到第一个字符串,sc.next()
并且行尾"leftover"会立即被扫描,并作为第一个String
空白时呈现给你的程序.
解决这个问题很简单:调用sc.next()
之后sc.nextInt()
,忽略结果.