在if-else條件下比較兩個字符串時,會執行錯誤的分支。我有s1 = "failure"
,我將它與ss
進行比較以執行,但它轉到else分支。爲什麼,當條件滿足時?比較Android上的兩個字符串
public class cabbookingconfirmation extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cabbbookingconfirmation);
String ss = Activity1.getData();
String s1 = "failure";
Log.i("tag..........", ss);
if (ss.equals(s1)) {
Log.i("saurabh..........","trivedi....");
} else {
TextView tv = (TextView)findViewById(R.id.details);
tv.setText("Dear Gaurav....," +
"Your cab has been booked. " +
"Please refer to your planner " +
"for details.Have a safe trip!");
tv.setBackgroundColor(111);
}
}
}
activity1.java低於
public class Activity1 extends Activity
{
public static String getData() {
String responceid = null;
try {
URL url = new URL("http://qrrency.com/mobile/j2me/cab/BookCab.php?bookingid=666");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
int m = 0;
StringBuffer buffer = new StringBuffer();
String str1 = " ";
while ((m = in.read()) != -1)
{
buffer.append((char)m);
str1 = str1 + (char)m;
responceid = str1;
}
Log.i("Line----saurabh trivedi---,------,,--", responceid);
in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
return responceid;
}
}
嘗試打印字符串's1'和'ss'。 – 2011-04-22 08:17:39
你確定'Activity1.getData()'返回一個真正的字符串嗎?我們可以看到這種方法的源代碼嗎? – OcuS 2011-04-22 08:49:18
所以,你的字符串不相等。而ss不是「失敗」,它等於Activity1.getData()。作爲pankaj建議使大小寫無關比較(compareToIgnoreCase) – Tima 2011-04-22 08:52:09