حسن  سهرابیان

مقایسه ی رشته ی ایجاد شده با متد valueof در جاوا

سلام
با توجه به کد زیر من آرایه ای از کاراکتر ها را با استفاده از متد ()valueof به رشته تبدیل کردم اما وقتی رشته ی ایجاد شده توسط متد ()valueof را با رشته ی دیگر با همان ورودی ( ورودی های یکسان ) با استفاده از شرط if مقایسه می کنم ، نتیجه ی false نمایش داده می شود . دلیل این نتیجه ی نادرست چیست ؟
با تشکر

String name1 = "radar" ; 
char[] charname = {'r','a','d','a','r'};
String charnamenew = String.valueOf(charname);
		
if(name1 == charnamenew){
	System.out.println("true");
}else{
	System.out.println("false");
}

لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
حسن  سهرابیان

پاسخ از طرف خودم :
برای مقایسه رشته ی ایجاد شده با استفاده از متد ()valueof با رشته ی دیگر کافی از equals() method استفاده کزد به شرح زیر :

boolean result = name1.equals(charnamenew);

کد کامل :

String name1 = "radar" ; 
char[] charname = {'r','a','d','a','r'};
String charnamenew = String.valueOf(charname);
		
boolean result = name1.equals(charnamenew);
		
if(result){
	System.out.println("true");
}else{
	System.out.println("false");
}


سوُال : اما چرا با استفاده از متد ()equals نتیجه ی درستی برگشت داده می شود ولی اگر این مقایسه را با شرط if انجام دهیم نتیجه ی درستی نمایش داده نمی شود ؟

سلام وقتی که شما دو شی رشته ای را با هم مقایسه می کنید در زبان جاوا محل آن شئ با هم مقایسه می شوند. بنابر این این دو متغیر با هم متفاوت خواهند بود. زیرا که دو شئ در محل های مختلف از حافظه نگهداری می شوند و وقتی دو رشته را با علامت == با هم مقایسه می کنیم شماره حافظه دو رشته با هم مقایسه می شوند.
سرنوشت ما با افکارمان تغییر می کند؛ اگر افکارمان همیشه مطابق با خواسته هایمان باشند، همان چیزی می شویم که آرزو داریم و همان کاری را می کنیم که می خواهیم
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره بهاره می تونی امروز ارزونتر از فردا خرید کنی ....