2015-09-15 3 views
0

У меня есть текстовый файл, который я постоянно проверяя последнюю строку, чтобы увидеть, если она изменилась. Мне нужна только обработка, чтобы обновить чертеж, когда последняя строка файла изменилась, но я не могу придумать, как это сделать.Выбирать только одну строку, не соответствующую другой?

Это то, что я до сих пор, где lastLine проверяет последнюю строку файла:

String last = lastLine(file); 
String previous = null; 

float r = random(0,255); 
float g = random(0, 255); 
float b = random(0, 255); 



    public void settings() { 
     size(500, 500); 
    } 
    public void setup() { 
     frameRate(60); 
     stroke(155, 0, 0); 
     textSize(30); 
    } 

    void draw() { 
     if (last != previous) { 
      background(r+(random(0,100)), g+(random(0,100)), b+(random(0,100))); 
      previous = last; 
     } 

     if (last == previous) { 
     text(lastLine(file), 255, 255); 
     } 
    } 

Сейчас это обновляет текст как изменения файлов, но фон остается тем же самым.

Как это сделать?

ответ

0

При сравнении значений String, не используйте оператор ==. Используйте equals() метод:

if (last.equals(previous)) { 

Чтобы проверить, что они не равны, используйте ! оператор:

if (!last.equals(previous)) { 

От the reference:

Для сравнения содержимого двух Строки, используйте метод equals(), как в if (a.equals (b)), а не if (a == b). Строка - это объект, поэтому сравнение их с оператором == только сравнивает, хранятся ли обе строки в одной и той же ячейке памяти. Использование метода equals() гарантирует, что фактическое содержимое сравнивается. (The troubleshooting reference имеет больше объяснений.)

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