java - Java中数组变量初始化错误

标签 java initialization

我正在尝试编写一个 Java 程序,该程序读取由 URL 组成的输入文件,从中提取标记,并跟踪每个标记在文件中出现的次数。我编写了以下代码:

import java.io.*;
import java.net.*;

public class Main {

    static class Tokens
    {
        String name;
        int count;
    }

    public static void main(String[] args) {
        String url_str,host;
        String htokens[];
        URL url;
        boolean found=false;
        Tokens t[];
        int i,j,k;

        try
        {
            File f=new File("urlfile.txt");
            FileReader fr=new FileReader(f);
            BufferedReader br=new BufferedReader(fr);

            while((url_str=br.readLine())!=null)
            {
                url=new URL(url_str);
                host=url.getHost();
                htokens=host.split("\\.|\\-|\\_|\\~|[0-9]");

                for(i=0;i<htokens.length;i++)
                {
                    if(!htokens[i].isEmpty()) 
                    {
                        for(j=0;j<t.length;j++)
                        {
                            if(htokens[i].equals(t[j].name))
                            {   t[j].count++;  found=true;    }
                        }
                        if(!found)
                        {
                            k=t.length;
                            t[k].name=htokens[i];
                            t[k].count=1;
                        }
                    }
                }

                System.out.println(t.length + "class tokens :");
                for(i=0;i<t.length;i++)
                {
                    System.out.println(
                            "name :"+t[i].name+" frequency :"+t[i].count);
                }
            }
            br.close();
            fr.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
}

但是当我运行它时,它显示:变量 t 未初始化。。我应该怎么做才能纠正它?

最佳答案

Java中的数组是固定长度,所以我认为你真正想做的是使用List<Tokens>

例如

List<Tokens> t = new ArrayList<Tokens>();

t.add(new Tokens(...))

除非您事先知道您将拥有的元素数量。

关于java - Java中数组变量初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2403477/

相关文章:

c++ - 使用没有初始化的类成员函数

c++ - 两个 DLL C++ 中的静态成员

java - 从 ServletContextListener 访问位于 WAR 文件根目录中的文件

java - 为什么JVM在解析非接口(interface)方法时会考虑超接口(interface)? (JVM 5.4.3.3)

java - Google Appengine Java - 从图像获取 EXIF 数据

c++ - 使用派生类成员进行父类的初始化

C++如何理解(auto & n : v)?

Java:ArrayList<String> 使用比较器排序(ArrayLists 不存储对象)

Java Swing Combobox removeAllItems 也调用 ItemStateChanged 吗?

c++ - 包裹在共享指针中时的 vector 构造