تیکه پاره های جاوا
526 subscribers
93 photos
24 videos
7 files
58 links
سلام خوش اومدید. اینجا یادداشت ها و تکه های جاوا رو کنار هم قرار میدیم :) مطالب کاملا اختصاصی و دستنویس هستند. کپی فقط با ذکر منبع و آیدی کانال❤️

📝برای تدریس پیام دهید
محمدرضا عظیمی‌فرد
🆔 @mrvj475
Download Telegram
💎 تفاوت equals و compareTo برای مقایسه رشته ها

🔆 هر دو متد برای مقایسه رشته کاربرد دارند ولی این بین تفاوت هایی وجود دارد. شاید بزرگترین تفاوت این باشد که equals ابجکت ها و comareTo حروف را با هم مقایسه میکند. طبق این قضیه میتوان نتیجه گرفت که در مقایسه ی null :

"foo".equals((String) null)
مقدار فالس را بازگشت میدهد. این در صورتی است که

"foo".compareTo( (String) null)
استثنای NullPointerException را به همراه خواهد داشت.

🔆 متد equals فقط دو مقدار false و true را بازگشت میدهد و آنهم زمانیست که مقدار دو رشته برابر یا نابرابر باشد. ضمنا همانطور که اشاره کردیم متد equals در هنگام مقایسه، از رخ دادن خطای NullPointerException جلو گیری میکند.

🔆 متد compareTo با توجه به اسناد جاوا، رشته ها را بصورت حرف به حرف (لغوی / lexographically) و همینطور از نظر طول رشته مقایسه میکند. طبق این مقایسه، این متد سه مقدار صفر، مثبت و منفی را بازگشت میدهد.

🔅مقدار صفر مختص زمانیست که رشته ها هم از لحاظ لغت و هم طول مقدار برابر داشته باشند.
🔅 مقدار منفی مختص زمانیست که رشته اول نسبت به رشته دوم طول کمتری داشته باشد.
🔅مقدار مثبت نیز مختص زمانیست که رشته اول نسبت به رشته دوم طول بیشتری داشته باشد

🔰 مثال:
⭕️ System.out.println("Aaaa".compareTo("Aa"));
یک مقدار مثبت را بازگشت میدهد. زیرا رشته اول نسبت به رشته دوم طول بیشتری دارد.

⭕️ System.out.println("Aa".compareTo("Aaaaa"));
یک مقدار منفی را برمیگرداند. زیرا رشته دوم نسبت به رشته اول طول بیشتری دارد.

⭕️ System.out.println("Aa".compareTo("Aa"));
مقدار صفر را دارد زیرا در این مقایسه رشته ها مقدار برابر را دارند.

⭕️ System.out.println("A".compareTo("B"));
در این مثال از آنجا که از نظر لغوی (lexographically) حرف "B" نسبت به حرف "A" در ترتیب الفبا جلوتر قرار گرفته است، خروجی مقدار منفی خواهد بود.
#equals #string #compareto #lexographically


@pieceJava
👍4