Сравните 2 значения текстового поля символ за символом - PullRequest
0 голосов
/ 23 июня 2018

Я хочу сопоставить два значения текстовых полей слова за словами и проверить, совпадают ли слова или нет. Если это не то же самое, он должен сказать мне процент совпадений слов.

Например: я хороший мальчик (текстовое поле1) Я бог-мальчик (текстовое поле 2)

Тогда результат должен быть (3/5) * 100, так как 2 слова не совпадают, это я и хорошо.

Скажите, пожалуйста, как это сделать.

Ответы [ 2 ]

0 голосов
/ 23 июня 2018

Попробуйте это:

int getCommonWords(String s1, String s2) {
    Set<String> set1 = new HashSet<>(Arrays.asList(s1.split(" ")));
    Set<String> set2 = new HashSet<>(Arrays.asList(s2.split(" ")));
    set1.retainAll(set2);
    return set1.size();
}

возвращает количество общих слов между 2 строками. Он чувствителен к регистру.

0 голосов
/ 23 июня 2018

вот код, который вы хотите

public class Test {
public static void main(String[] args) {
  String str1 = "I am a good boy";
  String [] s_str1 = str1.split(" ");
  String str2 = "Am a god boy";
  String [] s_str2 = str2.split(" ");
  int match = 0;
  for(int i=0;i<s_str1.length;i++){
    for(int j=0;j<s_str2.length;j++){
      if(s_str1[i].equalsIgnoreCase(s_str2[j])){
        match++;
      }
    }
  }
  int result = match*100/s_str1.length;           //use length of string which is 
                                                                        your main str

  System.out.println(result);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...