类似的字符串比较失败

时间:2015-11-01 01:07:40

标签: java android string android-studio

我在Android Studio中尝试以下代码。在Debugging时,我发现即使变量B的值为“(”我的if语句没有执行并将鼠标悬停在它上面,它也显示为false(请参考图像)。 在这种情况下,ScreenText的值是“6(”。

感谢任何帮助。

enter image description here

4 个答案:

答案 0 :(得分:2)

您应该使用.equals()方法比较字符串。在这种情况下,为了防止在B变量为null的情况下出现空指针异常,你应该这样做:

if("(".equals(B)) {
...
}

答案 1 :(得分:1)

*message = (char*)calloc([dMessage length], 1); 运算符用于参考比较,以检查两个对象是否具有相同的引用。

您想要比较两个==,请使用String方法。

boolean equals(String)

if( "(".equals(B)) { // your logic } B常量进行比较不需要您进行"("次检查。

答案 2 :(得分:0)

我认为在Android中比较字符串的更通用的方法是:

namespace AngularWebApi.Controllers
{
public class StoryController : ApiController
{
    private static readonly List<Story> apps = new List<Story>
    {
        new Story
        {
            ID = 1,
            Name = "Test 1",
            Descript = "Test 1 Desc",
            PreviewImageURL = "/Images/Test1.png",
            Views = 1,
            Ranking = 1
        },

        new Story
        {
            ID = 2,
            Name = "Test 2",
            Descript = "Test 2 Desc",
            PreviewImageURL = "/Images/Test2.png",
            Views = 1,
            Ranking = 2
        },

        new Story
        {
            ID = 3,
            Name = "Test 3",
            Descript = "Test 3 Desc",
            PreviewImageURL = "/Images/Test3.png",
            Views = 1,
            Ranking = 3
        },
    };

    public IHttpActionResult Get()
    {
        return Ok(apps);
    }
}
}

顺便说一下,在你的代码中

TextUtils.equals(B, "(");

toString()是多余的。

答案 3 :(得分:0)

如果要比较两个字符串的值或内容,请使用.equals()

if(string.equals("(")){
    //Enter your code
}

但是如果你想检查两个对象指向同一个引用,那么使用==