1

私のプログラムは一致する結果を表示しますが、結果を最良の一致、2 番目の一致などに並べ替えたいと考えています。

私のテキストファイルには次の行が含まれています:

red or yellow red' 黄色'

したがって、次を検索すると: red or yellow: 次の結果が得られます 'red or yellow red yellow。だから私がしたいのは、見つかった結果を次のようにソートすることです:

  1. 「赤と黄」100%一致
  2. 「赤」4割一致
  3. 「黄色」 40%一致

どんな助けでも大歓迎です。私のコードは次のとおりです。

public static void main(String[] args) {
  // TODO code application logic here
  String strLine;
  try{
    // Open the file that is the first 
    // command line parameter   
    FileInputStream fstream = new FileInputStream("C:\\textfile.txt"");
    // Get the object of DataInputStream
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));

    Scanner input  = new Scanner (System.in);         
    System.out.print("Enter Your Search:  ");   // String key="red or yellow";
    String key = input.nextLine();

    while ((strLine = br.readLine()) != null) {     
      Pattern p = Pattern.compile(key); // regex pattern to search for
      Matcher m = p.matcher(strLine);  // src of text to search
      boolean b = false;
      while(b = m.find()) {                       
        System.out.println( " " + m.group()); // returns index and match
        // Print the content on the console
      }
    }
    //Close the input stream
    in.close();              
  }catch (Exception e){//Catch exception if any
    System.err.println("Error: " + e.getMessage());
  }
}
4

1 に答える 1

2

パターンと検索スペースが混在しています。行 ( strLine) は検索スペースでkeyあり、パターンです。修理:

Pattern p = Pattern.compile(key);
Matcher m = p.matcher(strLine);
于 2012-11-07T15:41:47.540 に答える