💎 تفاوت equals و compareTo برای مقایسه رشته ها
🔆 هر دو متد برای مقایسه رشته کاربرد دارند ولی این بین تفاوت هایی وجود دارد. شاید بزرگترین تفاوت این باشد که equals ابجکت ها و comareTo حروف را با هم مقایسه میکند. طبق این قضیه میتوان نتیجه گرفت که در مقایسه ی null :
🔆 متد equals فقط دو مقدار false و true را بازگشت میدهد و آنهم زمانیست که مقدار دو رشته برابر یا نابرابر باشد. ضمنا همانطور که اشاره کردیم متد equals در هنگام مقایسه، از رخ دادن خطای NullPointerException جلو گیری میکند.
🔆 متد compareTo با توجه به اسناد جاوا، رشته ها را بصورت حرف به حرف (لغوی / lexographically) و همینطور از نظر طول رشته مقایسه میکند. طبق این مقایسه، این متد سه مقدار صفر، مثبت و منفی را بازگشت میدهد.
🔅مقدار صفر مختص زمانیست که رشته ها هم از لحاظ لغت و هم طول مقدار برابر داشته باشند.
🔅 مقدار منفی مختص زمانیست که رشته اول نسبت به رشته دوم طول کمتری داشته باشد.
🔅مقدار مثبت نیز مختص زمانیست که رشته اول نسبت به رشته دوم طول بیشتری داشته باشد
🔰 مثال:
#equals #string #compareto #lexographically
@pieceJava
🔆 هر دو متد برای مقایسه رشته کاربرد دارند ولی این بین تفاوت هایی وجود دارد. شاید بزرگترین تفاوت این باشد که 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