regionMatches()
می خواهی بخشی از دو رشته را مقایسه کنی؟ اینجاست! «مقایسه بخش های رشته» یعنی فقط چند کاراکتر را چک کنیم، نه کل رشته. «رشته (String)» یک متن است. این متد در کلاس String است و خیلی سریع کمک می کند.
regionMatches چیست؟
متد regionMatches() دو «بخش» از دو رشته را مقایسه می کند. نتیجه یک مقدار «بولی (Boolean)» است؛ یعنی یا درست است یا نادرست.
نکته: می توانی حساسیت به حروف بزرگ وکوچک را خاموش کنی. این یعنی «حساس به حروف (Case-Sensitive)» نباشد.
امضاهای متد (Syntax)
دو شکل دارد. یکی با ignoreCase و یکی بدون آن:
public boolean regionMatches(boolean ignoreCase, int offset, String other, int otherOffset, int length);
public boolean regionMatches(int offset, String other, int otherOffset, int length);
پارامترها با مثال مدرسه ای
- offset: از کجای رشته اول شروع کنیم.
- other: رشته دوم برای مقایسه.
- otherOffset: از کجای رشته دوم شروع کنیم.
- length: چند کاراکتر مقایسه شود.
- ignoreCase: اگر true باشد، حروف بزرگ وکوچک مهم نیست.
مثال ذهنی: مثل مقایسه دو برگه دیکته؛ فقط خط سوم تا پنجم را چک می کنی.
مثال پایه: مقایسه «World»
در این مثال بخش «World» در هر دو رشته بررسی می شود.
public class Main {
public static void main(String[] args) {
String myStr1 = "Hello, World!";
String myStr2 = "New World";
boolean r1 = myStr1.regionMatches(7, myStr2, 4, 5);
System.out.println(r1);
boolean r2 = myStr1.regionMatches(0, myStr2, 0, 5);
System.out.println(r2);
}
}
توضیح کوتاه: از اندیس 7 در رشته اول و اندیس 4 در دومی، طول 5 کاراکتر. نتیجه اول معمولاً درست است؛ دومی نه.
بی تفاوت به بزرگی حروف
وقتی «مقایسه بخش های رشته» مهم است اما حروف بزرگ وکوچک مهم نیست:
public class Main {
public static void main(String[] args) {
String a = "Hello, WORLD!";
String b = "say: world";
boolean ok = a.regionMatches(true, 7, b, 5, 5);
if (ok) {
System.out.println("Match!");
} else {
System.out.println("No match!");
}
}
}
الگوی رایج و خطاهای معمول
- اندیس ها خارج از محدوده نباشند. چون خطا می گیری.
- طول را درست انتخاب کن. زیاد نباشد.
- وقتی فقط بخشی مهم است، این متد سریع تر است.
هشدار: اگر length از مرز رشته بگذرد، برنامه خطا می دهد.
لینک های مفید و ادامه مطالعه
مطلب مرتبط داخلی: مقایسه الگو با matches(). همچنین بخش اتصال رشته با concat() را ببین.
منبع رسمی آموزش: W3Schools: regionMatches. برای مرور کلی: Java Strings.
جمع بندی سریع
- «مقایسه بخش های رشته» یعنی بررسی بخشی از متن.
- با ignoreCase، بزرگی حروف مهم نیست.
- اندیس و طول را دقیق بده.
- برای کارهای بخشی، این متد عالی است.