扫描仪问题

时间:2013-03-29 19:12:18

标签: java

我的扫描仪和nextLine有问题。会发生什么,它会跳过循环的第一圈。我的猜测是扫描仪已经在这里包含了一些东西,比如换行符等等。如果我为strCount和循环使用两个不同的扫描仪,它确实有效。这是正确的,如果是的话,我有什么办法可以在不使用两种不同扫描仪的情况下完成这项工作。

import java.util.*;

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

    System.out.print("Number of strings?");
    int strCount = key.nextInt();
    String [] array = new String[strCount];

    for(int x = 0; x < strCount; x++){

        System.out.print("String "+(x+1)+":");
        array[x] = key.nextLine();

    }
}

}

输入/输出示例:

字符串数量? 8

字符串1:字符串2:

从这里可以正常输入任何字符串,只需在循环中跳一步即可获得下一个字符串。

1 个答案:

答案 0 :(得分:4)

问题是Scanner.nextInt()不使用行终止符。在进入循环之前,只需多做一次nextLine()