java - Java 中的无限循环

标签 java stringtokenizer

所以我试图查看输入,并计算符合特定条件的单词(或者更确切地说,排除我不想计算的单词)。错误在以下代码中:

    BufferedReader br;
    BufferedWriter bw;
    String line;
    int identifiers = 0;
    boolean count = false;

    try
    {
        br = new BufferedReader(new FileReader("A1.input"));
        line = br.readLine();

        while(line != null)
        {
            StringTokenizer t = new StringTokenizer(line);
            String word;
            System.out.println(t.countTokens()); //for testing, keeps printing 6
            for(int c = 0; c < t.countTokens(); c++)
            {

                word = t.nextToken();
                count = true;
                if(Character.isDigit(word.charAt(0))) //if word begins with a number
                {
                    count = false; //do not count it
                } 
                if(count == true)
                {
                    for(String s : keywords)
                    {
                        if(s.equals(word)) //if the selected word is a keyword
                        {
                           count = false; //do not count it
                        }
                    }
                }

                System.out.println(word); //testing purposes

            }
            word = t.nextToken();
        }

这是输入文件:

INT f2(INT x, INT y ) 
  BEGIN 
  z := x*x - y*y;
RETURN z; 
 END 
 INT MAIN f1() 
 BEGIN
INT x;
READ(x, "A41.input");
INT y;
READ(y, "A42.input");
INT z;
z := f2(x,y) + f2(y,x);
WRITE (z, "A4.output"); 
END

如上面代码中的注释所述,第一个 println 语句重复打印 6(向我表明 while 循环无休止地重复)。第二个“测试目的”println 语句连续打印 INT f2(INT x 重复。

最佳答案

看起来您从未真正阅读过文件的下一行。更改此位:

try
{
    br = new BufferedReader(new FileReader("A1.input"));
    line = br.readLine();

    while(line != null)
    {

为此:

try
{
    br = new BufferedReader(new FileReader("A1.input"));

    while((line = br.readLine()) != null)
    {

关于java - Java 中的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847612/

相关文章:

java - 使用 myinterceptors 后 Struts 操作类属性变为 null

Java 8流,获取max()仅第一次需要很长时间

java - 无法在 Python 中发布文件 [在 Java 中工作]

java - Selenium 测试在单独运行时通过,在套件中运行时挂起,并且在启用日志记录或远程运行时惊人地通过套件

java - MapReduce Hadoop StringTokenizer 获取 NoSuchElementException

java - 为什么我会收到 NumberFormatException?

java - 使用 StringTokenizer 获取单词

java - 控制我的 jar 的进程名称

java - 用于读取整数和字符串的 stringTokenizer 错误在哪里?

java - 用于带有正则表达式的 Java 的 StringTokenizers