我正在尝试编写一个Java程序来找出字符串中出现两次的单词数,但出现异常:
数组索引超出范围
输入:
2 10 讨厌爱和平爱和平讨厌爱和平爱和平 8 汤姆·杰里(Tom Jerry)汤姆(Tom)
输出:
1 2
完整的代码是:
small_file = dd.read_csv('file1.txt', sep='|', dtype=str)
large_file = dd.read_csv('file2.txt', sep='|', dtype=str)
merged = dd.merge(large_file, small_file, on='key')
merged.to_csv('path/to/myfiles.*.csv')
答案 0 :(得分:0)
String str = sc.next();
此代码仅获得一个单词,但您打算获得n
个单词。
您可以删除数组,因为它是不必要的,然后使用:
for(int i=0;i<n;i++){
String word = sc.next();
if(wordCount.containsKey(word)){
wordCount.put(word,wordCount.get(word)+1));
}
else{
wordCount.put(word,1);
}
}
但是,更简洁的书写方式是:
for(int i=0;i<n;i++){
wordCount.compute(sc.next(), (word,count)-> (count==null)? 1 : count+1);
}
答案 1 :(得分:0)
我认为
for(int i=0;i<n;i++){
应该是:
for(int i=0; i < strArray.length; i++) {