2013-05-30 3 views
-6

У меня возникла проблема в течение последних нескольких дней. Мне интересно, почему var9 не заменяет var10, или если это так, почему isnt if (var10.equals (var9)) Working.Проблема со строками, не копирующими друг друга

public class WebsiteListener { 

    public static void checkerSimpleSSP(String var0, double var1, String var3, String var4) { 

     try { 
      URL var6 = new URL(var3); 
      BufferedReader var7 = new BufferedReader(new InputStreamReader(var6.openStream())); 
      String var9 = "Note"; 
      String var8; 
      String var10 = "Test"; 

      while ((var8 = var7.readLine()) != null) { 
       if (var8.contains("message")) { 
        var9 = var8.replaceAll("message:", "").trim(); 
        break; 
       } 
      } 
      if (var10.equals(var9)) { 
       System.out.println("No message update"); 
      } else { 
       var10 = var9; 
       window(var0, var4, var9, var10, var8); 
      } 
      var7.close(); 
     } 
     catch (MalformedURLException var11) { 
      ; 
     } 
     catch (IOException var12) { 
      ; 
     } 
    } 

    private static void window(String var0, String var1, String var9, String var10, String var8) {//Var0 Name 
     //do stuff 
    } 
} 

Я искал всюду, что мог найти в Интернете, но я не могу найти свою проблему или получить помощь. Пожалуйста помоги!

Обнаруженные ошибки

Добавление статической строки в код закрепил все,

 if (!currentmessage.equalsIgnoreCase(var9)) { 
      currentmessage = var9; 
      window(var0, var4, var9, var10, var8); 
     } else { 
      System.out.println("No message update"); 
     } 

Текущее сообщение статическое сообщение.

+4

Не могли бы вы попытаться дать своим переменным несколько значимых имен? – christopher

+0

Пробовал это и ничего не изменилось. – pogo4545

+0

Провести тест и с System.out.println они оба показали, что они одинаковые. – pogo4545

ответ

0

Мне нужно было установить в код статическую переменную. Все работает нормально, а код выше.

0

var9 и var10 являются пустыми строками в этом примере, поэтому if (var10.equals(var9)) оценивает true и «Нет обновления сообщений».

var10=var9 заявление тогда не выполняется, потому что это в else части, если заявление, так будет выполнять только тогда, когда var10 и var9 не по значению равны. Другими словами, var10 будет «заменяться» только на var9, если они не равны.

+0

Я изменил var9 равным тесту и var10 на равное примечание. var10 = var9 теперь выполняется, но оператор if все еще не определяет их равными. – pogo4545

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