2013-11-25 27 views
0

我創建了一個名爲doc.txt的文檔,並在其中寫入了「blaha」。我寫了一個程序,看看它是否說blaha。看看文件是否讀取了Java中的內容

File file = new File("C:/Users/Public/doc.txt"); 
    if (file.exists()){ 
    FileReader fr = new FileReader(file); 
    LineNumberReader ln = new LineNumberReader(fr); 
     while (ln.getLineNumber() == 0){ 
      String s = ln.readLine(); 
      System.out.println(s); 
      if(s=="blaha"){ 
       System.out.println("Match"); 
      }else{ 
       System.out.println("Nomatch"); 
      } 
    } 
    } 

而當我運行該程序時,它總是說Nomatch。爲什麼是這樣?

+1

將'String'值與'String'的equals方法進行比較,而不是'=='運算符。 – rgettman

回答

6

要爲價值比較字符串平等(兩個對象是否具有相同的值),這樣做:

s.equals("blaha") 

==操作測試參考身份(兩個對象是否是同一個) 。大多數時候,你對平等感興趣。

+1

此外,對於更多行話,引用相等的'==',值相等的'.equals()'。 –

1

因爲blaha!= trollface。此外,你會想要更強大的處理拖尾空白。你可能想要在字符串上使用trim()。此外,使用String.equals()或string.contains()。

+0

對不起,當我最初使用trollface,但不想在互聯網上發佈。 – user1797443