الدالة text.replace()‎ في لغة Kotlin

من موسوعة حسوب

تبدل الدالة replace()‎ محرفًا جديدًا مكان محرف قديم، أو سلسلة نصية جديدة مكان سلسلة نصية قديمة، أو سلسلة نصية جديدة أو ناتج تنفيذ دالة مكان كل ما يطابق تعبير نمطي معين في سلسلة نصية أو سلسلة من المحارف.

البنية العامة

actual fun String.replace(
    oldChar: Char, 
    newChar: Char, 
    ignoreCase: Boolean = false
): String

actual fun String.replace(
    oldValue: String, 
    newValue: String, 
    ignoreCase: Boolean = false
): String

inline fun CharSequence.replace(
    regex: Regex, 
    replacement: String
): String

inline fun CharSequence.replace(
    regex: Regex, 
    noinline transform: (MatchResult) -> CharSequence
): String

وجود الكلمة المفتاحية inline يدل على أن هذه الدالة مباشرة (لمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)).

المعاملات

oldChar

المحرف القديم المراد استبدال المحرف newChar به أينما وجد.

newChar

المحرف الجديد الذي سيحل مكان المحرف oldChar أينما عثر عليه.

oldValue

السلسلة النصية القديمة المراد استبدال القيمة newValue بها أينما وجدت.

newValue

السلسلة النصية الجديد التي ستحل مكان السلسلة oldValue أينما عثر عليها.

regex

تعبير نمطي يستعمل لمطابقة المحارف أو السلاسل النصية المراد استبدالها.

replacement

السلسلة النصية التي ستحل مكان كل قيمة طابقها التعبير النمطي regex.

transform

دالةٌ يمرر إليها كل قيمة من القيم المتطابقة مع التعبير النمطي regex وتعيد سلسلة من المحارف التي ستحل مكان تلك القيم المتطابقة.

ignoreCase

قيمة منطقية تحدد إن كان يراد إهمال حالة الأحرف أُثناء إجراء عملية البحث والاستبدال أم لا. القيمة الافتراضية هي: false (أي أخذ حالة الأحرف بالحسبان).

القيم المعادة

تعاد سلسلة نصية تحوي جميع محتوى سلسلة المحارف أو السلسلة النصية المعطاة بعد تبديل المحرف newChar مكان المحرف oldChar، أو السلسلة النصية newValue مكان السلسلة النصية oldValue، أو السلسلة النصية replacement أو ناتج تنفيذ الدالة transform مكان كل ما يطابق التعبير النمطي regex فيها.

أمثلة

مثالٌ على استعمال الدالة ()replace:

fun main(args: Array<String>) {
    val str = "abc12rad234com"

    println(str.replace('a', 'X')) // Xbc12rXd234com
    println(str.replace("rad", "X")) // abc12X234com
    println(str.replace(Regex("""-?\d+(\.\d+)?"""), "X")) // abcXradXcom
    println(str.replace(Regex("""-?\d+(\.\d+)?""")) { it.value }) // abc12rad234com
}

انظر أيضًا

مصادر