开发者

fileToSTring keeps on returning " "

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 i开发者_如何学Cnside 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];
                      ^


If you are running your Java program through the command line, it seems you aren't retrieving the arguments correctly,

String str1 = "arg[0]";
String str2 = "arg[1]";

Should be,

String str1 = args[0];
String str2 = args[1];
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜