الفرق بين المراجعتين لصفحة: «Kotlin/kotlin.text/replace»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.replace()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة <code>removeRange()‎</code> Kotlin/Str...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.replace()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>text.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>removeRange()‎</code> بحسب أنواع الوسائط المُمررة (انظر فقرة [[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|البنيةالعامة]]).  
==البنية العامة==
==البنية العامة==
<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">
</syntaxhighlight>في حال استدعاء  الدالة <code>replace()‎</code> عبر [[Kotlin/String|سلسلة نصية]] مع تمرير حرفين<code>oldChar</code> و <code>newChar</code> كوسيطين فستعيد  [[Kotlin/String|سلسلة نصية]] جديدة مع تعويض الحرف <code>oldChar</code> بالحرف <code>newChar</code>.<syntaxhighlight lang="kotlin">
fun CharSequence.removeRange(range: IntRange): CharSequence
actual fun String.replace(
 
    oldValue: String,
</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">
    newValue: String,
inline fun String.removeRange(range: IntRange): String  
    ignoreCase: Boolean = false
 
): String
</syntaxhighlight>في حال استدعاء  الدالة <code>removeRange()‎</code> عبر [[Kotlin/String|سلسلة نصية]] مع تمرير مجال<code>range</code> من النوع <code>IntRange</code> كوسيط فستعيد [[Kotlin/String|سلسلة نصية]] جديدة مع حذف الحروف التي فهرسها ينتمي إلى المجال<code>range.</code> تذكر أنّ نهاية <code>range</code> مُتضمّنة في الجزء المحذوف.
</syntaxhighlight>في حال استدعاء  الدالة <code>replace()‎</code> عبر [[Kotlin/String|سلسلة نصية]] مع تمرير [[Kotlin/String|سلسلتين نصيتين]] <code>oldValue</code> و <code>newValue</code> كوسيطين فستعيد  [[Kotlin/String|سلسلة نصية]] جديدة مع تعويض <code>oldValue</code> بـ <code>newValue</code>.<syntaxhighlight lang="kotlin">
inline fun CharSequence.replace(
    regex: Regex,
    replacement: String
): String
</syntaxhighlight>في حال استدعاء  الدالة <code>replace()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير [[Kotlin/kotlin.text/Regex/index|تعبير نمطي]] <code>regex</code> و<nowiki/>[[Kotlin/String|سلسلة نصية]]  <code>replacement</code> كوسيطين فستعيد  [[Kotlin/String|سلسلة نصية]] جديدة مع تعويض كل المُطابقات [[Kotlin/kotlin.text/Regex/index|للتعبير النمطي]] <code>regex</code> [[Kotlin/String|بالسلسلة النصية]]  <code>replacement</code>.<syntaxhighlight lang="kotlin">
inline fun CharSequence.replace(
    regex: Regex,
    noinline transform: (MatchResult) -> CharSequence
): String
</syntaxhighlight>في حال استدعاء  الدالة <code>replace()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير [[Kotlin/kotlin.text/Regex/index|تعبير نمطي]] <code>regex</code> ودالة  <code>transform</code> كوسيطين فستعيد [[Kotlin/String|سلسلة نصية]] جديدة مع تعويض كل المُطابقات [[Kotlin/kotlin.text/Regex/index|للتعبير النمطي]] <code>regex</code> بناتج تطبيق الدالة  <code>transform</code> والتي تأخذ كائنا من النوع <code>[[Kotlin/kotlin.text/MatchResult/index|MatchResult]]</code> وتعيد  [[Kotlin/String|سلسلة نصية]] لاستخدامها في عملية التعويض.


==القيم المعادة==
==القيم المعادة==
[[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]].  
[[Kotlin/String|سلسلة نصية]].  
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()replace</code> مع سلسلة نصية===
===استخدام الدالة <code>()replace</code> مع سلسلة نصية===
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()replace</code> عبرها مع تمرير  عددين كوسيطين، <nowiki/>ثمَّ تطبع الناتج:<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
println( str.replace (Regex("""-?\d+(\.\d+)?"""), "X") ) // abcXradXcom
println( str.replace (Regex("""-?\d+(\.\d+)?""")) {it.value} ) // abc12rad234com
}
}
</syntaxhighlight>
</syntaxhighlight>
===استخدام الدالة <code>()removeRange</code> مع سلسلة نصية مع تمرير مجال كوسيط===
===انظر أيضًا===
تعرِّف الشيفرة الآتية  [[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>
 
== انظر أيضًا ==
* <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/removePrefix|removePrefix()]]‎</code>: إن كانت [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استٌدعيت عبرها الدالة <code>removePrefix()‎</code> تبدأ بالبادئة <code>prefix</code> فستعيد [[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]] جديدة مع حذف تلك البادئة، وإلا فستعيد [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] كما هي. 


سطر 47: سطر 47:


==مصادر==
==مصادر==
*[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 الدالة text.replace()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Functions]]

مراجعة 07:55، 12 يوليو 2018

يختلف سلوك الدالة removeRange()‎ بحسب أنواع الوسائط المُمررة (انظر فقرة البنيةالعامة).

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

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

في حال استدعاء الدالة replace()‎ عبر سلسلة نصية مع تمرير حرفينoldChar و newChar كوسيطين فستعيد سلسلة نصية جديدة مع تعويض الحرف oldChar بالحرف newChar.

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

في حال استدعاء الدالة replace()‎ عبر سلسلة نصية مع تمرير سلسلتين نصيتين oldValue و newValue كوسيطين فستعيد سلسلة نصية جديدة مع تعويض oldValue بـ newValue.

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

في حال استدعاء الدالة replace()‎ عبر سلسلة حروف مع تمرير تعبير نمطي regex وسلسلة نصية replacement كوسيطين فستعيد سلسلة نصية جديدة مع تعويض كل المُطابقات للتعبير النمطي regex بالسلسلة النصية replacement.

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

في حال استدعاء الدالة replace()‎ عبر سلسلة حروف مع تمرير تعبير نمطي regex ودالة transform كوسيطين فستعيد سلسلة نصية جديدة مع تعويض كل المُطابقات للتعبير النمطي regex بناتج تطبيق الدالة transform والتي تأخذ كائنا من النوع MatchResult وتعيد سلسلة نصية لاستخدامها في عملية التعويض.

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

سلسلة نصية.

أمثلة

استخدام الدالة ()replace مع سلسلة نصية

تعرِّف الشيفرة الآتية سلسلة نصية باسم str، ثمَّ تستدعي الدالة ()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
}

انظر أيضًا

مصادر