我正在尝试从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);
}
}
答案 0 :(得分:0)
此代码无法编译。
您正在尝试在Map<String, ArrayList<String>>
中添加整数。
这是一行:
concordance.put(key, 1))
这一行也失败了:
value++;
由于value是Integer
的集合,而不是整数。
此行在运行时始终返回false:
ArrayList<Integer> value = concordance.get(key).indexOf(integer);
因为integer
被声明为ArrayList
,并且您正在搜索整数的集合。
一般来说,Integer
和ArrayList<Integer>
之间存在很大的混淆。您也在调用scan.nextLine()
,但没有注意到每次调用它时都会提前一行。