2014-03-03 7 views
-1

Я сделал словарь своих собственных слов и хочу проверить, правильно ли введен пользовательский ввод, введя его в массив и сравнивая его с моим массивом. Проблема в том, что мой результат говорит о том, что все введенные мной слова ошибочно написаны.Проверка орфографии в Java

import java.util.*; 

public class SpellCheck { 
    public static void main(String args[]){ 
     String array[] = {"This", "is", "a", "string"}; // Dictionary 
     System.out.println("Please enter a sentence"); 
     Scanner a = new Scanner(System.in); 
     String line = a.nextLine(); 
     System.out.println(line); 
     String arr[] = line.split(" "); // Turning into an array 
     for(int i = 0; i<array.length; i++){ // Loop that checks words 
      for(int j=0; j<arr.length; j++){ 
       if(array[i].equals(arr[j])){ 
        System.out.println(arr[j] + " is spelled correctly"); 
       } 
       else{ 
        System.out.println(arr[j] + " is not spelled correctly"); 
       } 
      } 
     } 
    } 
} 
+2

Вы должны исправить свой первый вопрос. Нехорошо иметь плохие вопросы и их копии. – djechlin

+0

Посоветуйте: сначала измените свой первый вопрос, чтобы создать новый. –

+2

Какой вклад вы используете? – Christian

ответ

0

Так как вы сравниваете каждое слово array с каждым словом arr, иногда (в большинстве случаев), вы получите "... is not spelled correctly". Вы можете попробовать перекручивание через arr (слова из входа) и проверки, если array содержит слово:

List<String> list = Arrays.asList(array); 

for (int i = 0; i < arr.length; i++) { // loop through input 
    if (list.contains(arr[i])) { 
     System.out.println(arr[i] + " is spelled correctly"); 
    } else { 
     System.out.println(arr[i] + " is not spelled correctly"); 
    } 
} 

В этом:

List<String> list = Arrays.asList(array); 

преобразует массив String[] в List<String>, и хранить его в list, поэтому вы можете использовать его метод contains(key) в цикле.

Примечание:

Это не будет обрабатывать случай, когда слова различаются с точки зрения ниже и uppercases, чтобы решить эту проблему можно заполнить array только строчных слов, а затем создать новый массив (от arr) со всеми словами, преобразованными в строчные буквы.

+0

Это сработало отлично, спасибо. – user3008456

Смежные вопросы