2013-12-02 3 views
0

Я пытаюсь использовать apache commons для чтения словаря. Когда я использую этот кодПроблема с FileUtils в сообществах Apache

for(String line: FileUtils.readLines(new File("dictionary.txt"))) 
    System.out.println(line); 
} 

распечатывает весь файл. Но когда я использую этот код ничего не происходит, когда я 100% уверен, что б и линии являются тот же

for(String line: FileUtils.readLines(new File("dictionary.txt"))) 
    { 
     if(line.toLowerCase() == b.toLowerCase()) 
      { 
       valid = true; 
      System.out.println(line); 
     } 

Так что случилось?

+2

Во втором фрагменте кода вы используете '==' для сравнения 'Strings' - используйте' .equals' вместо – Reimeus

+0

Спасибо, ребята, всегда задавались вопросом, что .equals сделал это == не – Welsar55

ответ

2

В Java, за исключением примитивных типов, «==» проверяет, являются ли два объекта одним и тем же объектом (то есть, они имеют один и тот же адрес памяти), тогда как .equals() проверяет, имеют ли они эквивалентные значения (даже если они хранятся в разных ячейках памяти). Просто измените:

line.toLowerCase() == b.toLowerCase() 

к:

line.equalsIgnoreCase(b) 

... и он должен работать.

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