Java 索引树状图

发布于 2024-12-14 22:59:08 字数 1057 浏览 2 评论 0 原文

我正在尝试从 txt 文件打印出索引,并且我使用扫描仪读取下面的文件,我似乎在将单词放入数组列表中时遇到问题

public class Concordance 
{
    public static void main (String[]args) throws IOException 
    {
        TreeMap <String, ArrayList<Integer>> concordance = new TreeMap <String, ArrayList<Integer>>();
        File myfile = new File ("Caesar.txt");
        Scanner scan = new Scanner(myfile);
        ArrayList <Integer > integer = new ArrayList <Integer>();
        for (int i = 0; i < scan.nextLine().length(); i++) 
        {
            String key = scan.nextLine().toLowerCase();
            if (scan.nextLine().length(i) > 1) 
            {
                if (concordance.get(key) == null) {
                    concordance.put(key, 1))
                } else {
                    ArrayList<Integer> value = concordance.get(key).indexOf(integer);
                    value++;
                    concordance.put(key, value);
                }
            }
        }
        System.out.println(concordance);
    }
}

I am trying to print out the concordance from a txt file and im using a scanner to read the file below i seem to be have a problem putting the words in the array list

public class Concordance 
{
    public static void main (String[]args) throws IOException 
    {
        TreeMap <String, ArrayList<Integer>> concordance = new TreeMap <String, ArrayList<Integer>>();
        File myfile = new File ("Caesar.txt");
        Scanner scan = new Scanner(myfile);
        ArrayList <Integer > integer = new ArrayList <Integer>();
        for (int i = 0; i < scan.nextLine().length(); i++) 
        {
            String key = scan.nextLine().toLowerCase();
            if (scan.nextLine().length(i) > 1) 
            {
                if (concordance.get(key) == null) {
                    concordance.put(key, 1))
                } else {
                    ArrayList<Integer> value = concordance.get(key).indexOf(integer);
                    value++;
                    concordance.put(key, value);
                }
            }
        }
        System.out.println(concordance);
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

双马尾 2024-12-21 22:59:08

这段代码无法编译。

您正在尝试将整数放入 Map> 中。

这是这一行:

concordance.put(key, 1))

此行也失败了:

value++;

因为 value 是 Integer 的集合,而不是整数。

此行在运行时将始终返回 false:

ArrayList<Integer> value = concordance.get(key).indexOf(integer);

因为 integer 被声明为 ArrayList,并且您正在搜索 Integer 的集合。

一般来说,您对 IntegerArrayList 之间存在很大的混淆。您还调用了 scan.nextLine(),而没有注意到它每次被调用时都会前进一行。

This code cannot compile.

You are trying to put an integer in a Map<String, ArrayList<String>>.

This is the line:

concordance.put(key, 1))

Also this line fails:

value++;

Since value is a collection of Integer, not an integer.

This line will always return false at runtime:

ArrayList<Integer> value = concordance.get(key).indexOf(integer);

Because integer is declared as ArrayList, and you are searching a collection of Integer.

In general, you have a great confusion between Integer and ArrayList<Integer>. You are also making calls to scan.nextLine() without noticing that it ADVANCES a line each time it is called.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文