الفرق بين المراجعتين ل"Kotlin/kotlin.text/replace"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.replace()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة <code>removeRange()‎</code> Kotlin/Str...')
 
(مراجعة وتدقيق.)
 
(7 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.replace()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>replace()‎</code> في Kotlin}}</noinclude>
تعيد الدالة <code>removeRange()‎</code> [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استٌدعيت عبرها مع حذف جزء منها (انظر فقرة [[Kotlin/kotlin.text/removeRange#.D8.A7.D9.84.D8.A8.D9.86.D9.8A.D8.A9 .D8.A7.D9.84.D8.B9.D8.A7.D9.85.D8.A9|البنيةالعامة]]).  
+
تبدل الدالة <code>replace()‎</code> محرفًا جديدًا مكان محرف قديم، أو سلسلة نصية جديدة مكان سلسلة نصية قديمة، أو سلسلة نصية جديدة أو ناتج تنفيذ دالة مكان كل ما يطابق تعبير نمطي معين في سلسلة نصية أو سلسلة من المحارف.  
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
fun CharSequence.removeRange(
+
actual fun String.replace(
     startIndex: Int,  
+
     oldChar: Char,  
     endIndex: Int
+
     newChar: Char,  
): CharSequence
+
     ignoreCase: Boolean = false
</syntaxhighlight>في حال استدعاء  الدالة <code>replace()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير عددين <code>startIndex</code> و <code>endIndex</code> كوسيطين فستعيد  [[Kotlin/CharSequence/index|سلسلة حروف]] جديدة مع حذف الحروف التي فهرسها محصور بين <code>startIndex</code> و <code>endIndex.</code> تذكر أن <code>endIndex</code> ليس مُتضمّنا في الجزء المحذوف.<syntaxhighlight lang="kotlin">
 
inline fun String.removeRange(
 
    startIndex: Int,  
 
     endIndex: Int
 
 
): String
 
): String
</syntaxhighlight>في حال استدعاء  الدالة <code>removeRange()‎</code> عبر [[Kotlin/String|سلسلة نصية]] مع تمرير عددين <code>startIndex</code> و <code>endIndex</code> كوسيطين فستعيد  [[Kotlin/String|سلسلة نصية]] جديدة مع حذف الحروف التي فهرسها محصور بين <code>startIndex</code> و <code>endIndex.</code> تذكّر أن <code>endIndex</code> ليس مُتضمّنا في الجزء المحذوف.<syntaxhighlight lang="kotlin">
 
fun CharSequence.removeRange(range: IntRange): CharSequence
 
  
</syntaxhighlight>في حال استدعاء  الدالة <code>removeRange()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير مجال<code>range</code> من النوع <code>IntRange</code> كوسيط فستعيد  [[Kotlin/CharSequence/index|سلسلة حروف]] جديدة مع حذف الحروف التي فهرسها ينتمي إلى  المجال<code>range.</code> تذكر أنّ نهاية <code>range</code> مُتضمّنة في الجزء المحذوف.<syntaxhighlight lang="kotlin">
+
actual fun String.replace(
inline fun String.removeRange(range: IntRange): String
+
    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
 +
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أن هذه الدالة مباشرة (لمزيد من التفاصيل، ارجع إلى صفحة [[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
 +
 
 +
== المعاملات ==
 +
 
 +
=== <code>oldChar</code> ===
 +
المحرف القديم المراد استبدال المحرف <code>newChar</code> به أينما وجد.
 +
 
 +
=== <code>newChar</code> ===
 +
المحرف الجديد الذي سيحل مكان المحرف <code>oldChar</code> أينما عثر عليه.
 +
 
 +
=== <code>oldValue</code> ===
 +
السلسلة النصية القديمة المراد استبدال القيمة <code>newValue</code> بها أينما وجدت.
 +
 
 +
=== <code>newValue</code> ===
 +
السلسلة النصية الجديد التي ستحل مكان السلسلة <code>oldValue</code> أينما عثر عليها.
 +
 
 +
=== <code>regex</code> ===
 +
تعبير نمطي يستعمل لمطابقة المحارف أو السلاسل النصية المراد استبدالها.
  
</syntaxhighlight>في حال استدعاء  الدالة <code>removeRange()‎</code> عبر [[Kotlin/String|سلسلة نصية]] مع تمرير مجال<code>range</code> من النوع <code>IntRange</code> كوسيط فستعيد [[Kotlin/String|سلسلة نصية]] جديدة مع حذف الحروف التي فهرسها ينتمي إلى  المجال<code>range.</code> تذكر أنّ نهاية <code>range</code> مُتضمّنة في الجزء المحذوف.
+
=== <code>replacement</code> ===
 +
السلسلة النصية التي ستحل مكان كل قيمة طابقها التعبير النمطي <code>regex</code>.
 +
 
 +
=== <code>transform</code> ===
 +
دالةٌ يمرر إليها كل قيمة من القيم المتطابقة مع التعبير النمطي <code>regex</code> وتعيد سلسلة من المحارف التي ستحل مكان تلك القيم المتطابقة.
 +
 
 +
=== <code>ignoreCase</code> ===
 +
قيمة منطقية تحدد إن كان يراد إهمال حالة الأحرف أُثناء إجراء عملية البحث والاستبدال أم لا. القيمة الافتراضية هي: <code>false</code> (أي أخذ حالة الأحرف بالحسبان).
  
 
==القيم المعادة==
 
==القيم المعادة==
[[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]].  
+
تعاد سلسلة نصية تحوي جميع محتوى سلسلة المحارف أو السلسلة النصية المعطاة بعد تبديل المحرف <code>newChar</code> مكان المحرف <code>oldChar</code>، أو السلسلة النصية <code>newValue</code> مكان السلسلة النصية <code>oldValue</code>، أو السلسلة النصية <code>replacement</code> أو ناتج تنفيذ الدالة <code>transform</code> مكان كل ما يطابق التعبير النمطي <code>regex</code> فيها.
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()replace</code> مع سلسلة نصية===
+
مثالٌ على استعمال الدالة <code>()replace</code>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()replace</code> عبرها مع تمرير  عددين كوسيطين، <nowiki/>ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val str = "hsoub wiki"  
+
    val str = "abc12rad234com"
      
+
 
println( str.removeRange (1,5) ) // h wiki
+
     println(str.replace('a', 'X')) // Xbc12rXd234com
}
+
    println(str.replace("rad", "X")) // abc12X234com
</syntaxhighlight>
+
    println(str.replace(Regex("""-?\d+(\.\d+)?"""), "X")) // abcXradXcom
===استخدام الدالة <code>()removeRange</code> مع سلسلة نصية مع تمرير مجال كوسيط===
+
     println(str.replace(Regex("""-?\d+(\.\d+)?""")) { it.value }) // abc12rad234com
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()removeRange</code> عبرها مع تمرير  مجال كوسيط، ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
val str = "hsoub wiki"  
 
      
 
println( str.removeRange (2..4) ) // hs wiki
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
==انظر أيضًا==
== انظر أيضًا ==
+
* الدالة <code>[[Kotlin/kotlin.text/replaceFirst|replaceFirst()]]</code>: تبدل محرفًا جديدًا مكان أول ظهور لمحرف قديم، أو سلسلة نصية جديدة مكان أول ظهور لسلسلة نصية قديمة، أو سلسلة نصية جديدة أو ناتج تنفيذ دالة مكان أول ما يطابق تعبير نمطي معين في سلسلة نصية أو سلسلة من المحارف. 
* <code>[[Kotlin/kotlin.text/removePrefix|removePrefix()]]‎</code>: إن كانت [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استٌدعيت عبرها الدالة <code>removePrefix()‎</code> تبدأ بالبادئة <code>prefix</code> فستعيد [[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]] جديدة مع حذف تلك البادئة، وإلا فستعيد [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] كما هي
+
* الدالة <code>[[Kotlin/kotlin.text/replaceAfter|replaceAfter()]]</code>: تبدل<nowiki/>[[Kotlin/String|سلسلة نصية]] مكان كل الجزء الواقع بعد أول ظهور [[Kotlin/Char|لمحرف]] أو [[Kotlin/String|لسلسلة نصية]] معينة في [[Kotlin/String|سلسلة نصية]] . 
 
+
* الدالة <code>[[Kotlin/kotlin.text/replaceAfterLast|replaceAfterLast()‎]]</code>: تبدل<nowiki/>[[Kotlin/String|سلسلة نصية]] مكان كل الجزء الواقع بعد آخر ظهور [[Kotlin/Char|لمحرف]] أو [[Kotlin/String|لسلسلة نصية]] معينة في [[Kotlin/String|سلسلة نصية]] .  
* <code>[[Kotlin/kotlin.text/removeSuffix|removeSuffix()]]</code>: إن كانت [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استٌدعيت عبرها الدالة <code>removeSuffix()‎</code> تنتهي باللاحقة <code>suffix</code> فستعيد [[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]] جديدة مع حذف تلك اللاحقة، وإلا فستعيد [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] كما هي
+
* الدالة <code>[[Kotlin/kotlin.text/replaceBefore|replaceBefore()‎]]</code>: تبدل [[Kotlin/String|سلسلة نصية]] مكان كل الجزء الواقع قبل أول ظهور [[Kotlin/Char|لمحرف]] أو [[Kotlin/String|لسلسلة نصية]] معينة في [[Kotlin/String|سلسلة نصية]].  
* <code>[[Kotlin/kotlin.text/asSequence|asSequence()]]</code>: تنشئ كائنًا من الصنف <code>Sequence</code> والذي يُغلّف سلسلة الحروف التي استُدعيت عبرها، لأجل استعمالها في الحلقات التكرارية.
+
* الدالة <code>[[Kotlin/kotlin.text/replaceBeforeLast|replaceBeforeLast()‎]]</code>: تبدل [[Kotlin/String|سلسلة نصية]] مكان كل الجزء الواقع قبل آخر ظهور [[Kotlin/Char|لمحرف]] أو [[Kotlin/String|لسلسلة نصية]] معينة في [[Kotlin/String|سلسلة نصية]]. 
 
+
* الدالة <code>[[Kotlin/kotlin.text/replaceIndent|replaceIndent()]]</code>: تبدِّل [[Kotlin/String|سلسلة نصية]] معينة مكان المسافة البادئة الفارغة (indentation) في [[Kotlin/String|السلسلة النصية]] التي استُدعيت معها.   
 +
* الدالة <code>[[Kotlin/kotlin.text/replaceIndentByMargin|replaceIndentByMargin()‎]]</code>  تبدل [[Kotlin/String|سلسلة نصية]] معينة مكان المسافة البادئة المحددة عبر المعامل الممرر إليها في [[Kotlin/String|السلسلة النصية]] التي استُدعيت معها.  
 +
* الدالة <code>[[Kotlin/kotlin.text/replaceRange|replaceRange()‎]]</code>: تبدل سلسلة معينة من المحارف أو ناتج دالة معينة مكان مجال محدد في سلسلة من المحارف أو سلسلة نصية. 
 +
* الدالة <code>[[Kotlin/kotlin.text/Regex/replace|replace()‎]]</code>: تبدل سلسلة النصية معينة مكان كل تطابقات <nowiki/>[[Kotlin/kotlin.text/Regex/index|التعبير النمطي]] الذي استدعي معها في <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] المُمرّرة إليها أو <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] التي تعيدها الدالة الممررة إليها.
 +
* الدالة <code>[[Kotlin/kotlin.text/Regex/find|find()‎]]</code>: تبحث عن أول محرف متطابق مع <nowiki/>[[Kotlin/kotlin.text/Regex/index|التعبير النمطي]] الذي استُدعي معها في <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] الممرَّرة إليها. يمكن البحث في <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] المعطاة بأكملها، أو يمكن بدء عملية البحث عند محرف معين.
 +
* الدالة <code>[[Kotlin/kotlin.text/Regex/matches|matches()‎]]</code>: تتحقق من مطابقة جميع محارف <nowiki/>[[Kotlin/CharSequence|السلسلة]] الممررة إليها مع <nowiki/>[[Kotlin/kotlin.text/Regex/index|التعبير النمطي]] الذي استدعي معها
 +
* الدالة <code>[[Kotlin/kotlin.text/Regex/containsMatchIn|containsMatchIn()]]</code>: تتحقق إن كان بإمكان <nowiki/>[[Kotlin/kotlin.text/Regex/index|التعبير النمطي]] الذي استُدعي معها مطابقة محرفٍ واحدٍ على الأقل من <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] المُمرّرة إليه.
 
==مصادر==
 
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/remove-range.html الدالة text.replace()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/replace.html صفحة الدالة replace()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Text]]

المراجعة الحالية بتاريخ 10:42، 5 سبتمبر 2018

تبدل الدالة 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
}

انظر أيضًا

مصادر