gpt4 book ai didi

Java 不会停止读取输入

转载 作者:行者123 更新时间:2023-11-30 04:02:28 26 4
gpt4 key购买 nike

Java 不会停止读取输入。我明白也许这个 while 循环可能与它有关:

while(input.hasMoreTokens());
{
array1[counter] = input.nextToken();
counter++;
}

但我不明白为什么循环会成为问题,因为我已经在调用 .nextToken() ,它应该推进 token 。

这是完整的源代码:

import java.io.*;
import java.util.*;

class HelloWorld
{
static String ReadLn (int maxLg) // utility function to read from stdin
{
byte lin[] = new byte [maxLg];
int lg = 0, car = -1;
String line = "";

try
{
while (lg < maxLg)
{
car = System.in.read();
if ((car < 0) || (car == '\n')) break;
lin [lg++] += car;
}
}
catch (IOException e)
{
return (null);
}

if ((car < 0) && (lg == 0)) return (null); // eof
return (new String (lin, 0, lg));
}

public static void main (String args[]) // entry point from OS
{
HelloWorld myWork = new HelloWorld(); // create a dinamic instance
myWork.Begin(); // the true entry point
}

void Begin()
{
String idata;
StringTokenizer input;

while ((idata = HelloWorld.ReadLn (255)) != null)
{
input = new StringTokenizer (idata);

String[] array1 = {};
int counter = 0;
while(input.hasMoreTokens());
{
array1[counter] = input.nextToken();
counter++;
}


int[] array2 = {};
for(int a = 0; a < array1.length; a++)
{
array2[a] = Integer.parseInt(array1[a]);
}
int[] array3 = {};
for(int b = 0; b < array2.length; b++)
{
if ( array2[b] != 42)
{
array3[b] = array2[b];
}
else
{
break;
}
}
String string = "";
for( int c = 0; c < array3.length; c++)
{
if( c < array3.length - 1)
{
string += array3[c] + "\n";
}
else
{
string += array3[c];
}
}
System.out.println(string);
}
}
}

最佳答案

while 末尾有一个杂散的分号:

while(input.hasMoreTokens());
^ REMOVE THIS

关于Java 不会停止读取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21643499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com