【问题标题】:If issue in for loop如果在 for 循环中出现问题
【发布时间】:2012-05-19 16:56:52
【问题描述】:

我有一个 for 循环,我想在其中查找电子邮件。我必须找到肯定相同的字符串。在 for 循环中,我举杯祝酒,我看到两者都显示相同的内容,没有任何空格。我在 if(String == String) 中所拥有的根本不会发生。 这是代码:

try {
        jArray = new JSONArray(result);
        JSONObject json_email = null;

        for(int i=0;i<=jArray.length();i++){
            json_email = jArray.getJSONObject(i);

            addedby2 = json_email.getString("email");



        if(addedby2==email2){
            Toast.makeText(this, json_email.toString(), Toast.LENGTH_LONG).show();
            user = json_email.getString("user");
            rpoints = json_email.getString("respectpoints");
            //Toast.makeText(this, user+"    "+rpoints, Toast.LENGTH_LONG).show();
        }
        }
        tvAdded.setText(user + " (" + rpoints + ")");
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我还尝试在 if 条件之外使用 getString("user") 并且它有效。 我尝试在 if 条件下写:String.equals(String) 但没有任何结果。

有人知道问题出在哪里吗?

【问题讨论】:

  • 使用equals比较你的字符串(见How do I compare strings in Java?)。如果问题仍然存在,请查看两个变量的值。
  • 尝试单步执行,例如在 Firebug 中。
  • 如果 string.compareTo(other_string)==0 试试
  • 我解决了。错误是我使用了“

标签: json string loops if-statement for-loop


【解决方案1】:

如果您使用 Java,要比较字符串值,您必须使用 equals() 函数。就像霍华德说的那样,如果这不起作用,那么你的变量可能是错误的。

【讨论】:

  • 我解决了。错误是我使用了“
猜你喜欢
  • 2020-03-15
  • 2016-05-19
  • 2022-11-20
  • 1970-01-01
  • 2012-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多