我正在读取文件中的一些数据,每行都分配给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
答案 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