2012-02-28 71 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(); 
    } 

试试这个 这些函数对匹配字符串非常准确。