PDA

View Full Version : مقایسه 2 رشته...



hamed9090
سه شنبه 27 بهمن 1394, 10:39 صبح
با سلام دوستان عزیز یه مشکل کوچیک و لی پر دردسر دارم
من ارتباط با سرور رو در برنامم پیاده کردم برای قسمت login تمام کارها رو انجام دادم واگر اطلاعات درست فرستاده بشه ok بر میگرده
الان چک کردم و داخل متغیر res مقدار ok قرار دارد ولی وارد بدنه دستور if نمیشود.
مشکل چیه:::


if (res.equals("ok")) {

String uname=admin_edtuser.getText().toString();
Toast.makeText(getApplicationContext(), "خوش آمودید " + uname.toString(),Toast.LENGTH_SHORT).show();
Intent i = new Intent(Admin.this, AdminMain.class);
startActivity(i);


}

NeoFighT
سه شنبه 27 بهمن 1394, 10:40 صبح
سلام ،
متد equals نسبت به بزرگ و گوچیک بودن حروف حساسه ،مطمئن بشین که دقیقا ok برگرده

hamed9090
سه شنبه 27 بهمن 1394, 10:43 صبح
آره دوست عزیز دقیقا چک کردم ولی نشد باز

rezaricky
سه شنبه 27 بهمن 1394, 12:08 عصر
قبل if یکبار مقدار res رو چاپ کن ببین مقدارش همونه یا نه ؟

Log.d("res",res);

msroid
سه شنبه 27 بهمن 1394, 12:47 عصر
سلام
اینم امتحان کن شاید به کارت بیاد:
if(res.toString().toLowerCase().equals("ok"))

hamed9090
سه شنبه 27 بهمن 1394, 13:50 عصر
هم مقدارو چاپ میکنم و هم toast میکنم ok هست اما هیچ جور وارد if نمیشه یه چیز ساده 4 و5 ساعته گرفتارم کرده دوستان راه دیگه ای به نظرتون نمیرسه؟؟؟

hamed9090
سه شنبه 27 بهمن 1394, 13:56 عصر
جالب اینجاس این یکی کار میکنه اما اونی که مد نظرم هست نه !!!!!!!!!
if (!res.equals("")) {
pd.cancel();


Toast.makeText(getApplicationContext(), res.,Toast.LENGTH_SHORT).show();
res="";
tm.cancel();


}

rezaricky
سه شنبه 27 بهمن 1394, 14:06 عصر
کد کامل اون بخش رو بزار .
اینارو هم تست کن :

if (res.contentEquals("ok")){


}



if (res.equalsIgnoreCase("ok")){


}

fool66
سه شنبه 27 بهمن 1394, 14:23 عصر
سلام
از این استفاده کنید ببینید جواب میده


if(res.compareTo("ok")==0)

hamed9090
سه شنبه 27 بهمن 1394, 15:57 عصر
دوستان خود به خود درس شد.اکلیپس یهو .....
ممنون

Nevercom
سه شنبه 27 بهمن 1394, 16:48 عصر
مشکلتون ظاهراً حل شده، اما بد نیست توضیحاتی رو بر اساس تجربه ی خودم بنویسم شاید به درد دوستان خورد.

در برخی موارد پاسخی که از وب سرور دریافت می کنیم، یکسری کاراکترهای اضافه داره.
همین مشکل رو من چند سال قبل داشتم و متوجه شدم یک کاراکتر به ایتدای رشته ی دریافتی من اضافه شده بود که چون جزو کاراکترهای non-Printing بود، دیده نمیشد.
در نهایت چک میکردم اگر در ابتدای پاسخ همچین کاراکتری وجود داشته باشه حذفش کنه و مشکلم حل شد.

این متد رو نوشتم که تمام کاراکترهای اضافی رو حذف کنه: (تست http://ideone.com/UVYTJ2)



public static String normalizeString(String input) {
if (input.length() <= 1) {
return input;
}
String out = input;
int ascii;
while (out.length() > 1) {
ascii = out.charAt(0);


if (ascii >= 33 & ascii <= 126) {

return out;
} else {
out = out.substring(1);
}
}


return out;
}