【发布时间】:2014-03-14 12:39:16
【问题描述】:
到目前为止,我有这段代码,总而言之,它在cmd中获取两个文本文件和一个指定的块大小,并将txt文件标准化,然后根据指定的块大小将它们放入块中。
import java.io.*;
import java.util.*;
public class Plagiarism {
public static void main(String[] args) throws Exception {
//you are not using 'myPlag' anywhere, you can safely remove it
// Plagiarism myPlag = new Plagiarism();
if (args.length == 0) {
System.out.println("Error: No files input");
System.exit(0);
}
String foo = null;
for (int i = 0; i < 2; i++) {
BufferedReader reader = new BufferedReader(new FileReader(args[i]));
foo = simplify(reader);
// System.out.print(foo);
int blockSize = Integer.valueOf(args[2]);
List<String> list = new ArrayList<String>();
for (int k = 0; k < foo.length() - blockSize + 1; k++) {
list.add(foo.substring(k, k + blockSize));
}
// System.out.print(list);
}
}
public static String simplify(BufferedReader input)
throws IOException {
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = input.readLine()) != null) {
sb.append(line.replaceAll("[^a-zA-Z]", "").toLowerCase());
}
return sb.toString();
}
}
接下来我想做的是使用霍纳的多项式累加法(设置值 x = 33)将这些块中的每一个转换为哈希码。我完全被难住了,希望你们能提供一些帮助!
感谢您的阅读,并提前感谢您提供的任何建议!
【问题讨论】:
-
霍纳的方法不是关于-通常-数字吗?你只有字符串。您打算如何实施该方法?
-
@GáborBakos 这就是重点 - 我必须使用这种方法将这些字符串块转换为哈希码 :)
-
我认为Horner 方法的结果会是另一个字符串,尽管字符串通常不被认为是哈希码。我想这是我困惑的根源。
标签: java hashcode hashset polynomial-math