2012-02-28 92 views
0

一個String,我做了這個小功能:獲取日期從Android的

public String getDay() { 

    String day = (String)android.text.format.DateFormat.format("E", new java.util.Date()); 
    return day; 
} 

我知道android.text.format.DateFormat.form("E", new java.util.Date());返回的CharSequence,但有關於從字符的序列鑄造這個什麼問題?

我用這樣的功能:

String day = getDay(); 
if(day == "Tue") { 
     Toast.makeText(TaxiFaresActivity.this, day + " inside the if", Toast.LENGTH_LONG).show(); 
    } 

但在我看來,我曾經進入功能?

如果我可是麪包之外,我得到以下吐司

週二

哪個是正確的?爲什麼程序沒有跳進if語句?

+1

比較字符串等於(day.equals(「Tue」)) – 2012-02-28 16:23:11

回答

4

在java中==方法所以使用比較對象時,等於你在比較地址沒有內容:

if(day.equals("Tue")) 
0

你應該比較字符串使用.equals()我猜?

見例如:http://www.leepoint.net/notes-java/data/strings/12stringcomparison.html

比較字符串是否相等,不使用==。 ==運算符檢查 以查看兩個對象是否完全相同。兩個字符串可能是不同的對象,但具有相同的值(其中有完全相同的 字符)。使用.equals()方法比較 相等的字符串。同樣,使用.compareTo()方法測試不等於 的比較。 \

例如,
String s =「something」,t =「也許別的東西」;
if(s == t)// Legal,但通常是錯誤的。
如果(s.equals(t))的// RIGHT
如果(S> T)//非法
如果(s.compareTo(T)> 0)// CORRECT>

0

可以使用

if(day.matches("tue")) 
{ 
    Toast.makeText(TaxiFaresActivity.this, day + " inside the if", Toast.LENGTH_LONG).show(); 
} 

,也可以使用

if(day.contentEquals("tue")) 
    { 
     Toast.makeText(TaxiFaresActivity.this, day + " inside the if", Toast.LENGTH_LONG).show(); 
    } 

試試這個 這些函數對匹配字符串非常準確。