fileToSTring продолжает возвращать "" - PullRequest
1 голос
/ 26 апреля 2010

Мне удалось получить этот код без ошибок. Но почему-то он не возвращает строки, которые я написал внутри file1.txt и file.txt, которые я передаю через str1 и str2. Моя цель - использовать эту библиотеку с открытым исходным кодом, чтобы измерить сходство между строками, содержащимися в двух текстовых файлах.

Внутри своего Javadoc говорится, что ...

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

Вот мой модифицированный код, пытающийся использовать функцию FileLoader, но не может вернуть строки внутри файла. Конечный результат продолжает возвращать мне "". Я не знаю, где моя вина:

   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)");

}

}

Обновление: я изменил код, но выдает ошибку:

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];
                      ^

1 Ответ

2 голосов
/ 26 апреля 2010

Если вы запускаете свою Java-программу через командную строку, похоже, что вы неправильно получаете аргументы,

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

Должно быть,

String str1 = args[0];
String str2 = args[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...