android字符串和if语句

时间:2015-06-28 08:45:30

标签: android string if-statement

我确定这很简单,但它让我不知所措

我使用以下代码

    String name = Global.PicName2;
    String tempstr = name.substring(0, 3).trim();
    Toast.makeText(getBaseContext(), tempstr, Toast.LENGTH_LONG).show();


    if (tempstr == "Sou"){Toast.makeText(getBaseContext(), "Yes", Toast.LENGTH_LONG).show();}

现在第一个Toast报道tempstr是“Sou” 我检查了字符串的长度,长度为3个字符 我修剪了任何空格

然而,它不会通过if语句和toast yes

如果我添加行

    tempstr="Sou";

在第一次吐司之后它会通过if语句,这样就说出了tempstr是错误的但是我无法解决为什么

它让我疯狂了吗?

任何帮助表示赞赏

标记

3 个答案:

答案 0 :(得分:1)

使用

public class TemplateModule extends AbstractModule {
    @Override
    protected void configure() {
        // bind thymeleaf processor as eager singleton
        bind(ThymeleafViewProcessor.class).asEagerSingleton();
    }
}

答案 1 :(得分:1)

因为您正在寻找价值平等检查。您应该使用tempstr.equals("Sou")

== 运算符检查引用相等性,而 .equals()检查值是否相等。

答案 2 :(得分:0)

在Java中,当“==”运算符用于比较2个对象时,它会检查对象是否引用内存中的相同位置。换句话说,它检查2个对象名称是否基本上是对同一内存位置的引用。一个非常简单的例子将有助于澄清这一点:

http://www.programmerinterview.com/index.php/java-questions/java-whats-the-difference-between-equals-and/

//你的检查对象是否相同或不同

if (tempstr == "Sou") // ==” operator is used to compare 2 objects, 
{
   Toast.makeText(getBaseContext(), "Yes", Toast.LENGTH_LONG).show();
}

//对

if(tempStr.equals("Sou")){

}

if(tempStr.equalsIgnoreCase("Sou")){ // you can ignoring case 

}

http://www.tutorialspoint.com/java/java_basic_operators.htm