I managed to get this code to compile with out error. But somehow it did not return the strings that I wrote inside file1.txt and file.txt that I pass its path through str1 and str2. My objective is to use this open source library to measure the similarity between strings contains inside 2 text files.
Inside the its Javadoc, its states that ...
public static java.lang.StringBuffer fileToString(java.io.File f)
private call to load a file and return its content as a string.
Parameters:
f - a file for which to load its content
Returns:
a string containing the files contents or "" if empty or not present
Here's is my modified code trying to use the FileLoader function, but fails to return the strings inside the file. The end result keeps on returning me the "" . I do not know where is my fault:
package uk.ac.shef.wit.simmetrics;
import java.io.File;
import uk.ac.shef.wit.simmetrics.similaritymetrics.*;
import uk.ac.shef.wit.simmetrics.utils.*;
public class SimpleExample {
public static void main(final String[] args) {
if(args.length != 2) {
usage();
} else {
String str1 = "arg[0]";
String str2 = "arg[1]";
File objFile1 = new File(str1);
File objFile2 = new File(str2);
FileLoader obj1 = new FileLoader();
FileLoader obj2 = new FileLoader();
str1 = obj1.fileToString(objFile1).toString();
str2 = obj2.fileToString(objFile2).toString();
System.out.println(str1);
System.out.println(str2);
AbstractStringMetric metric = new MongeElkan();
//this single line performs the similarity test
float result = metric.getSimilarity(str1, str2);
//outputs the results
outputResult(result, metric, str1, str2);
}
}
private static void outputResult(final float result, final AbstractStringMetric metric, final String str1, final String str2) {
System.out.println("Using Metric " + metric.getShortDescriptionString() + " on strings \"" + str1 + "\" & \"" + str2 + "\" gives a similarity score of " + result);
}
private static void usage() {
System.out.println("Performs a rudimentary string metric comparison from the arguments given.\n\tArgs:\n\t\t1) String1 to compare\n\t\t2)String2 to compare\n\n\tReturns:\n\t\tA standard output (command line of the similarity metric with the given test strings, for more details of this simple class please see the SimpleExample.java source file)");
}
}
Update: I have modified the code, but it gives me this error:
SimpleExample.java:79: cannot find symbol
symbol : variable arg
location: class uk.ac.shef.wit.simmetrics.SimpleExample
String str1 = arg[0];
^
SimpleExample.java:80: cannot find symbol
symbol : variable arg
location: class uk.ac.shef.wit.simmetrics.SimpleExample
String str2 = arg[1];
^