مشکل عجیب مقایسه دو رشته ( حل شده )
با سلام
ماجرا از این قراره که من یک رشته متنی فرستاده شده از طریق بلوتوث رو در یک متغییر String ذخیره میکنم و حتی در LogCat نمایش میدم ولی هرکاری میکنم که این رشته رو با رشته مشابهش در متغییر دوم مقایسه کنم همیشه نتیجه مقایسه false میشه با وجود اینکه از هر دو متغییر در LogCat پرینت میگیرم و هر دو مقدار یکسانی رو نشون میدن
برای اطمینان از کارکرد صحیح ADT متغییر سومی هم اضافه کردم که مقدارش رو دستی مشابه دو متغییر بالا مقدار دهی میکنم ولی در این حالت مقایسه دو عبارت رشته ای مقدار صحیحی رو برمیگردونه و فقط مشکل من با اون متغییر رشته ایه که عبارت خوانده شده از ارتباط بلوتوث داخلش ریخته میشه
حدس خودم اینه یه کاراکتری چیزی اضافه بر کاراکترهای قابل نمایش هم در ارتباط بلوتوث فرستاده و در متغییر مشکل دار ریخته میشه که معادل اسکی قابل دیدن نداره ولی باعث میشه نتیجه مقایسه رشته ها رو بهم بریزه
از دیشب تا الان یه سره بیدارم ولی نتونستم حلش کنم دوستان کسی چیزی به ذهنش نمیرسه ؟
inputStream = mBTSocket.getInputStream();
while (!bStop) { byte[] buffer = new byte[256]; if (inputStream.available() > 0) { inputStream.read(buffer); int i = 0; for (i = 0; i < buffer.length && buffer[i] != 0; i++) { } final String strInput = new String(buffer, 0, i); String String00 = new String(strInput); String String01 = new String("LED Off !"); String String02 = new String("LED Off !"); Log.e("VV", "String00:" + String00 ); Log.e("VV", "String01:" + String01 ); Log.e("VV", "String02:" + String02 ); if(String02==String01){ Log.i("VV","True"); } if(String02.equals(String01)){ Log.i("VV","True 02 01"); } if(String00.equals(String01)){ Log.i("VV","True 00 01"); } else{ Log.i("VV","False 00 01:" + String00); }
دوست عزیز از کد زیر جهت مقایسه استفاده کن و نتیجه رو اعلام کن
String text1="sajad";
String text2="sajad";
if(text1.equals(text2))
{
}
به این صورت انجام بدین مشکلتون حل میشه :
if(text1.trim().equals(text2)){
//code
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
