در این آموزش با استفاده از مثال هایی با متد replaceAll()
آشنا می شویم.
متد replaceAll()
هر زیررشته ای را که با regex مطابقت دارد با متن مشخص شده جایگزین می کند.
مثال
class Main {
public static void main(String[] args) {
String str1 = "Java123is456fun";
// regex for sequence of digits
String regex = "\\d+";
// replace all occurrences of numeric
// digits by a space
System.out.println(str1.replaceAll(regex, " "));
}
}
// Output: Java is fun
سینتکس ()replaceAll
سینتکس replaceAll()
روش به صورت زیر است:
string.replaceAll(String regex, String replacement)
در اینجا، string
یک شی از String
کلاس است.
پارامترهای replaceAll()
متد replaceAll()
دو پارامتر دارد.
- regex – یک regex (می تواند یک رشته معمولی باشد) که قرار است جایگزین شود
- replacement – رشته های فرعی پیدا شده در متن، با این رشته جایگزین می شوند
مقدار بازگشتی متد replaceAll()
متد replaceAll()
:
رشته جدیدی را برمی گرداند که در آن هر پیدایش از رشته فرعی با رشته جایگزین جایگزین می شود .
مثال 1: متد replaceAll()
class Main {
public static void main(String[] args) {
String str1 = "aabbaaac";
String str2 = "Learn223Java55@";
// regex for sequence of digits
String regex = "\\d+";
// all occurrences of "aa" is replaceAll with "zz"
System.out.println(str1.replaceAll("aa", "zz")); // zzbbzzac
// replace a digit or sequence of digits with a whitespace
System.out.println(str2.replaceAll(regex, " ")); // Learn Java @
}
}
در مثال بالا، "\\d+"
یک عبارت منظم است که با یک یا چند رقم مطابقت دارد.
escape کاراکترها در replaceAll()
متد replaceAll()
می تواند یک regex یا یک رشته معمولی را به عنوان اولین آرگومان در نظر بگیرد. به این دلیل است که یک رشته معمولی به خودی خود یک regex است.
در regex کاراکتر هایی وجود دارند که معنای خاصی دارند. این متاکاراکترها عبارتند از:
\ ^ $. | ? * + {} [] ()
اگر میخواهید زیررشتههای حاوی این متاکاراکترها را مطابقت دهید، میتوانید با استفاده از کاراکتر \
از این کاراکتر ها escape کنید یا از متد replace()
استفاده کنید.
// Program to replace the + character
class Main {
public static void main(String[] args) {
String str1 = "+a-+b";
// replace "+" with "#" using replaceAll()
// need to escape "+"
System.out.println(str1.replaceAll("\\+", "#")); // #a-#b
// replace "+" with "#" using replace()
System.out.println(str1.replace("+", "#")); // #a-#b
}
}
همانطور که می بینید، وقتی از متد replace()
استفاده می کنیم، نیازی به escape متاکاراکترها نداریم. برای کسب اطلاعات بیشتر، به این آدرس مراجعه کنید: متد replace()
اگر نیاز دارید که فقط اولین رخداد زیررشته منطبق را جایگزین کنید، از متد ()replaceFirst استفاده کنید.
دیدگاهها