Advertisement
Sergiovan

Clusterfuck

Mar 29th, 2015
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.18 KB | None | 0 0
  1. public String[] getConfusion(String correct, String incorrect){
  2.         if(damerauLevenshteinDistance(correct, incorrect) != 1){
  3.             return new String[]{"", ""};
  4.         }
  5.         if(correct.length() == incorrect.length()){
  6.             for(int i = 0; i < correct.length(); i++){
  7.                 if(correct.charAt(i) == incorrect.charAt(i)){
  8.                     continue;
  9.                 }else{
  10.                     if(i == correct.length() - 1 && correct.charAt(i) != incorrect.charAt(i)){
  11.                         return new String[]{"" + incorrect.charAt(i), "" + correct.charAt(i)}; //Substitution
  12.                     }else if(i < correct.length() - 1 && correct.charAt(i) != incorrect.charAt(i)){
  13.                         if(correct.charAt(i) == incorrect.charAt(i+1) && incorrect.charAt(i) == correct.charAt(i+1)){
  14.                             return new String[]{"" + incorrect.charAt(i) + incorrect.charAt(i+1),
  15.                                 "" + correct.charAt(i) + correct.charAt(i+1)}; //Transposition
  16.                         }else{
  17.                             return new String[]{"" + incorrect.charAt(i), "" + correct.charAt(i)}; //Subtitution
  18.                         }
  19.                     }
  20.                 }
  21.             }
  22.         }else if(correct.length() > incorrect.length()){ //Deletion
  23.             for(int i = 0; i < incorrect.length(); i++){
  24.                 if(correct.charAt(i) == incorrect.charAt(i)){
  25.                     continue;
  26.                 }else{
  27.                     if(i == 0){
  28.                         return new String[]{"" + incorrect.charAt(i), "" + correct.charAt(i) + correct.charAt(i + 1),
  29.                                 " ", "" + correct.charAt(i)};
  30.                     }else{
  31.                         return new String[]{"" + incorrect.charAt(i-1), "" + correct.charAt(i-1) + correct.charAt(i),
  32.                                 "" + incorrect.charAt(i), "" + correct.charAt(i) + correct.charAt(i+1)};
  33.                     }
  34.                 }
  35.             }
  36.             return new String[]{"" + incorrect.charAt(incorrect.length()), "" + correct.charAt(incorrect.length()) + correct.charAt(incorrect.length() + 1),
  37.                                 " ", "" + correct.charAt(incorrect.length() + 1)};
  38.         }else{ //Insertion
  39.             for(int i = 0; i < correct.length(); i++){
  40.                 if(correct.charAt(i) == incorrect.charAt(i)){
  41.                     continue;
  42.                 }else{
  43.                     if(i == 0){
  44.                         return new String[]{"" + incorrect.charAt(i), " ",
  45.                                         "" + incorrect.charAt(i) + incorrect.charAt(i+1), "" + correct.charAt(i)};
  46.                     }else{
  47.                         return new String[]{"" + incorrect.charAt(i) + incorrect.charAt(i+1), "" + correct.charAt(i),
  48.                                         "" + incorrect.charAt(i-1) + incorrect.charAt(i), "" + correct.charAt(i-1)};
  49.                     }
  50.                 }
  51.             }
  52.             return new String[]{"" + incorrect.charAt(incorrect.length()), " ",
  53.                                 "" + incorrect.charAt(incorrect.length() - 1) + incorrect.charAt(incorrect.length()), "" + correct.charAt(correct.length())};
  54.         }
  55.         return new String[2];
  56.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement