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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.replaceRange()‎</code> في لغة Kotlin}}</noinclude> يختلف سلوك الدالة <code>replaceRange()‎</co...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>text.replaceRange()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>text.replaceRange()‎</code> في لغة Kotlin}}</noinclude>
يختلف سلوك الدالة <code>replaceRange()‎</code> بحسب أنواع الوسائط المُمررة (انظر فقرة [[Kotlin/kotlin.text/replace#.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>replaceRange()‎</code> بحسب أنواع الوسائط المُمررة (انظر فقرة [[Kotlin/kotlin.text/replaceRange#.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">
actual fun String.replace(
+
fun CharSequence.replaceRange(
     oldChar: Char,  
+
    startIndex: Int,
     newChar: Char,  
+
    endIndex: Int,
     ignoreCase: Boolean = false
+
    replacement: CharSequence
 +
): CharSequence
 +
</syntaxhighlight>في حال استدعاء  الدالة <code>replaceRange()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير عددين <code>startIndex</code> و <code>endIndex</code> و<nowiki/>[[Kotlin/CharSequence/index|سلسلة حروف]] <code>replacement</code> كوسائط فستعيد [[Kotlin/CharSequence/index|سلسلة حروف]] جديدة مع تعويض الحروف التي تنتمي فهارسها إلى المجال المحدد بـ <code>startIndex</code> و <code>endIndex</code> [[Kotlin/CharSequence/index|بسلسلة الحروف]] <code>replacement</code>.<syntaxhighlight lang="kotlin">
 +
inline fun String.replaceRange(
 +
     startIndex: Int,  
 +
     endIndex: Int,  
 +
     replacement: CharSequence
 
): String
 
): String
</syntaxhighlight>في حال استدعاء  الدالة <code>replaceRange()‎</code> عبر [[Kotlin/String|سلسلة نصية]] مع تمرير حرفين<code>oldChar</code> و <code>newChar</code> كوسيطين فستعيد  [[Kotlin/String|سلسلة نصية]] جديدة مع تعويض الحرف <code>oldChar</code> بالحرف <code>newChar</code>.<syntaxhighlight lang="kotlin">
+
</syntaxhighlight>في حال استدعاء  الدالة <code>replaceRange()‎</code> عبر [[Kotlin/String|سلسلة نصية]] مع تمرير عددين <code>startIndex</code> و <code>endIndex</code> و<nowiki/>[[Kotlin/CharSequence/index|سلسلة حروف]] <code>replacement</code> كوسائط فستعيد [[Kotlin/String|سلسلة نصية]] جديدة مع تعويض الحروف التي تنتمي فهارسها إلى المجال المحدد بـ <code>startIndex</code> و <code>endIndex</code> [[Kotlin/CharSequence/index|بسلسلة الحروف]] <code>replacement</code>. <syntaxhighlight lang="kotlin">
actual fun String.replace(
+
fun CharSequence.replaceRange(
    oldValue: String,
+
     range: IntRange,  
    newValue: String,
+
     replacement: CharSequence
    ignoreCase: Boolean = false
+
): CharSequence
): String
+
</syntaxhighlight>في حال استدعاء  الدالة <code>replaceRange()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير مجال <code>range</code> و<nowiki/>[[Kotlin/CharSequence/index|سلسلة حروف]] <code>replacement</code> كوسيطين فستعيد [[Kotlin/CharSequence/index|سلسلة حروف]] جديدة مع تعويض الحروف التي تنتمي فهارسها إلى المجال <code>range</code> [[Kotlin/CharSequence/index|بسلسلة الحروف]] <code>replacement</code>. نهاية المجال <code>range</code> مُتضمّنة في الجزء الذي سيُستبدل.<nowiki/><syntaxhighlight lang="kotlin">
</syntaxhighlight>في حال استدعاء  الدالة <code>replaceRange()‎</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>replaceRange()‎</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(
 
inline fun CharSequence.replace(
 
     regex: Regex,  
 
     regex: Regex,  
 
     noinline transform: (MatchResult) -> CharSequence
 
     noinline transform: (MatchResult) -> CharSequence
 
): String
 
): String
</syntaxhighlight>في حال استدعاء  الدالة <code>replaceRange()‎</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|سلسلة نصية]] لاستخدامها في عملية التعويض.
+
</syntaxhighlight>في حال استدعاء  الدالة <code>replaceRange()‎</code> عبر [[Kotlin/String|سلسلة نصية]] مع تمرير مجال <code>range</code> و<nowiki/>[[Kotlin/CharSequence/index|سلسلة حروف]] <code>replacement</code> كوسيطين فستعيد   [[Kotlin/String|سلسلة نصية]] جديدة مع تعويض الحروف التي تنتمي فهارسها إلى المجال <code>range</code> [[Kotlin/CharSequence/index|بسلسلة الحروف]] <code>replacement</code>. نهاية المجال <code>range</code> مُتضمّنة في الجزء الذي سيُستبدل.
 +
 
 +
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
  
 
==القيم المعادة==
 
==القيم المعادة==
[[Kotlin/String|سلسلة نصية]].  
+
[[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]].  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()replaceRange</code> مع سلسلة نصية===
+
===استخدام الدالة <code>()replaceRange</code> مع تمرير ثلاث وسائط===
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()replaceRange</code> عبرها مع تجريب عدة أنواع من الوسائط، <nowiki/>ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()replaceRange</code> عبرها مع تمرير عددين و<nowiki/>[[Kotlin/String|سلسلة نصية]] كوسائط، <nowiki/>ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
 +
fun main(args: Array<String>) {
 +
val str = "Hsoub wiki"
 +
   
 +
println( str.replaceRange (6,10,"academy") ) // Hsoub academy
 +
}
 +
</syntaxhighlight>
 +
===استخدام الدالة <code>()replaceRange</code> مع تمرير وسيطين===
 +
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()replaceRange</code> عبرها مع تمرير مجال و<nowiki/>[[Kotlin/String|سلسلة نصية]] كوسيطين، ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val str = "abc12rad234com"  
+
val str = "Hsoub wiki"  
 
      
 
      
println( str.replace ('a','X') ) // Xbc12rXd234com
+
println( str.replaceRange (6..9,"academy") ) // Hsoub academy
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>
سطر 47: سطر 54:
  
 
==مصادر==
 
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/replace.html الدالة text.replaceRange()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/replace-range.html الدالة text.replaceRange()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 10:28، 12 يوليو 2018

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

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

fun CharSequence.replaceRange(
    startIndex: Int, 
    endIndex: Int, 
    replacement: CharSequence
): CharSequence

في حال استدعاء الدالة replaceRange()‎ عبر سلسلة حروف مع تمرير عددين startIndex و endIndex وسلسلة حروف replacement كوسائط فستعيد سلسلة حروف جديدة مع تعويض الحروف التي تنتمي فهارسها إلى المجال المحدد بـ startIndex و endIndex بسلسلة الحروف replacement.

inline fun String.replaceRange(
    startIndex: Int, 
    endIndex: Int, 
    replacement: CharSequence
): String

في حال استدعاء الدالة replaceRange()‎ عبر سلسلة نصية مع تمرير عددين startIndex و endIndex وسلسلة حروف replacement كوسائط فستعيد سلسلة نصية جديدة مع تعويض الحروف التي تنتمي فهارسها إلى المجال المحدد بـ startIndex و endIndex بسلسلة الحروف replacement.

fun CharSequence.replaceRange(
    range: IntRange, 
    replacement: CharSequence
): CharSequence

في حال استدعاء الدالة replaceRange()‎ عبر سلسلة حروف مع تمرير مجال range وسلسلة حروف replacement كوسيطين فستعيد سلسلة حروف جديدة مع تعويض الحروف التي تنتمي فهارسها إلى المجال range بسلسلة الحروف replacement. نهاية المجال range مُتضمّنة في الجزء الذي سيُستبدل.

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

في حال استدعاء الدالة replaceRange()‎ عبر سلسلة نصية مع تمرير مجال range وسلسلة حروف replacement كوسيطين فستعيد سلسلة نصية جديدة مع تعويض الحروف التي تنتمي فهارسها إلى المجال range بسلسلة الحروف replacement. نهاية المجال range مُتضمّنة في الجزء الذي سيُستبدل.

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

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

سلسلة نصية أو سلسلة حروف.

أمثلة

استخدام الدالة ()replaceRange مع تمرير ثلاث وسائط

تعرِّف الشيفرة الآتية سلسلة نصية باسم str، ثمَّ تستدعي الدالة ()replaceRange عبرها مع تمرير عددين وسلسلة نصية كوسائط، ثمَّ تطبع الناتج:

fun main(args: Array<String>) {
val str = "Hsoub wiki" 
    
println( str.replaceRange (6,10,"academy") ) // Hsoub academy
}

استخدام الدالة ()replaceRange مع تمرير وسيطين

تعرِّف الشيفرة الآتية سلسلة نصية باسم str، ثمَّ تستدعي الدالة ()replaceRange عبرها مع تمرير مجال وسلسلة نصية كوسيطين، ثمَّ تطبع الناتج:

fun main(args: Array<String>) {
val str = "Hsoub wiki" 
    
println( str.replaceRange (6..9,"academy") ) // Hsoub academy
}

انظر أيضًا

مصادر