Java:字符串未打印

时间:2017-12-09 16:56:11

标签: java arrays string printing

我正在读取文件中的一些数据,每行都分配给String数组的一个单元格。出于某种原因,当我尝试在读取文件后打印数组(第8-10行)时,我什么都没打印。当我在While循环(第5行)中打印行时,我得到了正确打印的行。

    1: int count = 0;
    2: String[] s = new String[300];


    3: while(!StdIn.isEmpty()) {
    4:  s[count]=StdIn.readLine();
    5:  System.out.println(s[count]);
    6:  count++;
    7: }

    8:  for(int i=0;i<count;i++) {
    9:   System.out.println(s[i]);
   10: }

使用扫描仪的相同代码:

    Scanner in = new Scanner(System.in);

    int count = 0;
    String[] s = new String[300];


    while(in.hasNextLine()) {
        s[count]=in.nextLine();
        System.out.println(s[count]);
        count++;
    }
    for(int i=0;i<count;i++) {
        System.out.println(s[i]);
    }

我无法弄清楚我的代码有什么问题。

提前致谢。

编辑:当读取最后一行时,in.hasNextLine()没有返回任何内容。它被困在计数++。见照片 - &gt; DEBUGGER

2 个答案:

答案 0 :(得分:-1)

这只适用于文件,但在此使用$conv = array( "hello" => array("Hello", "Hi", "Hello, how are you?"), "helo" => function() { global $conv; return $conv["hello"]; } ); print_r($conv['helo']()); 时,in.hasNextLine()永远不会给出错误。你需要为它提供一个条件来打破while循环。

答案 1 :(得分:-2)

8:  for(int i=0;i<count;i++) {

这里是你的错误,这应该是s.length而不是count