文本未被读入变量

时间:2014-02-22 02:39:01

标签: java compiler-errors

以下是我的代码,我应该读取AAABBBCCCDDD和输出a3b3c3d3等数据。

我已经更新了代码,现在代码编译并运行,但是没有输出。我不知道它是否正在读取数据或代码是否错误。

String text;
        FileReader data = new FileReader("input.txt");
        BufferedReader in = new BufferedReader(data); 
        text=in.readLine();
        in.close();
        //Counter looks at length of data
        int counter=0;
        //Counter2 looks at current letter or number to make see if its the same then iterates it
        int counter2=0;
             while (text.charAt(counter)<=text.length())
            {
                while (text.charAt(counter)==text.charAt(counter2+1))
                {
                    counter2++;
                }
                System.out.println(text.charAt(counter) + counter2);
                counter=counter2;
            }

2 个答案:

答案 0 :(得分:1)

编译器抱怨的原因是因为在这个循环中:

    while (in.readLine()!=null)
    {
     text = in.readLine(); 
    }

循环体可能永远不会被执行,这意味着text永远不会被设置为任何东西。当您使用可能未设置为任何内容的变量时,Java编译器不喜欢它。

但无论如何整个循环都是错误的。你只使用一个输入字符串,为什么这是一个循环?在我们帮助解决这个问题之前,我们需要知道您要完成的任务。如果你确实想要一个循环,那么按上面的方式调用in.readLine()两次是错误的,因为这意味着每次循环都会读取两个行。

答案 1 :(得分:0)

假设您已正确导入所有java.io类,以下是导致编译失败的两个问题:

String text;

这必须初始化为某种东西。如

String text = null;

可能在while循环中设置它是不够的。

另一个问题是这个变量,output在任何地方都不存在,这就是为什么这行不能编译的原因:

System.out.println(output);

我认为你的意思是text