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;
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.