我想计算匹配和计算单词。
我有两个文本文件,并且可以互相比较单词。
例如,
文本文件:a b c d e。
b文本文件:a a a a a。
我希望看到这个输出。
输出:a.5。
但是当我编写代码时,它没有用。
请帮帮我。
我使用eclipses编写了java adk 1.8的代码,windows 8.1 64bit。
这是此后的代码。
package test1;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class ex01 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
FileReader fr = new FileReader("C:/Users/Hong/Desktop/승현연구/152-300/301.txt");
FileReader key_item = new FileReader("C:/Users/Hong/Desktop/승현연구/no-yes2500.txt");
BufferedReader br = new BufferedReader(fr);
BufferedReader br2 = new BufferedReader(key_item);
FileOutputStream file = new FileOutputStream("C:/Users/Hong/Desktop/승현연구/답변빈도/a301.txt");
List<String> key = new ArrayList<String>();
List<String> str = new ArrayList<String>();
String in = "";
String s = "";
String ss[];
while ((in = br2.readLine()) != null) {
key.add(in);
}
while ((s = br.readLine()) != null) {
str.add(s);
}
***int cnt = 0;
int count = 0;
int cont = 0;
String txt = "";
for (int i = 0; i < key.size(); i++) {
for (int j = 0; j < str.size(); j++) {
System.out.println(j + " " + str.get(j));
if (str.get(j).lastindexOf(key.get(i))) {
cnt++;
//System.out.println(key.get(i) + " " + cnt);
}
if (cnt == 1){
//cont ++ 1;
//System.out.printf("%d",cont);
}
}
System.out.println(key.get(i) + " " + cnt);
txt = txt + key.get(i) + " " + cnt + "\n";
cnt = 0;
}
file.write(txt.getBytes());
}***
//System.out.println("Hello Java");
}
在我的编码中,导致此行的错误 [if(str.get(j).lastindexOf(key.get(i)))] 我不知道为什么 这是解释文本文件和我想要做的总结
首先,我想看的代码是比较301文本文件和no-yes2500文本文件并输出属于no-yes2500的字数 (例如:苹果3 香蕉2)
答案 0 :(得分:1)
str.get(j).toString().lastIndexOf(key.get(i).toString())>=0
试试这个
答案 1 :(得分:0)
你的代码中有一个拼写错误,用lastindexOf
替换lastIndexOf
并将if子句中的表达式计算为布尔值,当前它是一个int(即索引)