بکندباز

متد replace()‎ در جاوا

در این آموزش با استفاده از مثال هایی با متد replace() آشنا می شویم.

متد replace() هر تطابق کاراکتر/متن قدیمی در رشته را با کاراکتر/متن جدید جایگزین می‌کند.

مثال: جایگزینی کاراکتر b با کاراکتر c در رشته srt1

class Main {
  public static void main(String[] args) {
    String str1 = "bat ball";

    // replace b with c
    System.out.println(str1.replace('b', 'c'));

  }
}

// Output: cat call

سینتکس replace()

سینتکس روش replace() هر دو مورد زیر است:

string.replace(char oldChar, char newChar)

یا

string.replace(CharSequence oldText, CharSequence newText)

در اینجا، string یک شی از Stringکلاس است.


پارامترهای replace()

برای جایگزینی یک کاراکتر، متد replace() این دو پارامتر را می گیرد:

  • oldChar – کاراکتری که باید در رشته جایگزین شود
  • newChar – کاراکترهای پیدا شده، با این کاراکتر جایگزین می شوند

برای جایگزینی یک زیر رشته، متد replace() این دو پارامتر را می گیرد:

  • oldText – رشته فرعی که باید در رشته جایگزین شود
  • newText – زیررشته های پیدا شده، با این رشته جایگزین می شوند

مقدار بازگشتی متد replace()

  • متد replace() یک رشته جدید را برمی‌گرداند که در آن هر پیدایش از کاراکتر/متن، با کاراکتر/متن جدید جایگزین می‌شود.

مثال 1: جایگزینی کاراکتر ها با متد replace()

class Main {
  public static void main(String[] args) {
    String str1 = "abc cba";

    // all occurrences of 'a' is replaced with 'z'
    System.out.println(str1.replace('a', 'z'));  // zbc cbz

    // all occurences of 'L' is replaced with 'J'
    System.out.println("Lava".replace('L', 'J'));  // Java

    // character not in the string
    System.out.println("Hello".replace('4', 'J'));  // Hello

  }
}

توجه: اگر کاراکتری که باید جایگزین شود در رشته نباشد،replace() رشته اصلی را برمی گرداند.


مثال 2: جایگزینی زیر رشته ها با متد replace()

class Main {
  public static void main(String[] args) {
    String str1 = "C++ Programming";

    // all occurrences of "C++" is replaced with "Java"
    System.out.println(str1.replace("C++", "Java"));  // Java Programming


    // all occurences of "aa" is replaced with "zz"
    System.out.println("aa bb aa zz".replace("aa", "zz")); // zz bb zz zz

    // substring not in the string
    System.out.println("Java".replace("C++", "C")); // Java
  }
}

توجه: اگر رشته فرعی که باید جایگزین شود در رشته اصلی نباشد، replace() رشته اصلی را برمی گرداند.


توجه به این نکته ضروری است که متد replace() از ابتدا به انتها رشته های فرعی را جایگزین می کند. مثلاً،

"zzz".replace("zz", "x") // xz

خروجی کد بالا xz می باشد، نه zx. به این دلیل که متد replace() جایگزینی را از ابتدای رشته آغاز می کند نه از انتها.

اگر می خواهید زیر رشته ها را بر اساس یک عبارت باقاعده (regex) جایگزین کنید، از متد ()replaceAll استفاده کنید.

backendbaz

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*