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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (استبدال النص - 'Kotlin Functions' ب'Kotlin Function')
(مراجعة وتدقيق.)
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.replaceRange()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>replaceRange()‎</code> في Kotlin}}</noinclude>
يختلف سلوك الدالة <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|البنيةالعامة]]).  
+
تبدِّل الدالة <code>replaceRange()‎</code> سلسلة معينة من المحارف مكان جزء محدد في سلسلة من المحارف أو سلسلة نصية.  
 +
 
 +
سيُرمَى الاستثناء <code>IndexOutOfBoundsException</code> إن وقع مجال الجزء المحدد المراد استبداله خارج مجال سلسلة المحارف أو السلسلة النصية المعطاة.  
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
سطر 8: سطر 10:
 
     replacement: CharSequence
 
     replacement: CharSequence
 
): 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(
 
inline fun String.replaceRange(
 
     startIndex: Int,  
 
     startIndex: Int,  
سطر 14: سطر 16:
 
     replacement: CharSequence
 
     replacement: CharSequence
 
): String
 
): String
</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">
+
 
 
fun CharSequence.replaceRange(
 
fun CharSequence.replaceRange(
 
     range: IntRange,  
 
     range: IntRange,  
 
     replacement: CharSequence
 
     replacement: CharSequence
): CharSequence
+
): CharSequence  
</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">
+
 
inline fun CharSequence.replace(
+
inline fun String.replaceRange(
     regex: Regex,  
+
     range: IntRange,  
     noinline transform: (MatchResult) -> CharSequence
+
     replacement: CharSequence
 
): String
 
): 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> مُتضمّنة في الجزء الذي سيُستبدل.
+
</syntaxhighlight><nowiki/>وجود الكلمة المفتاحية <code>inline</code> يدل على أن هذه الدالة مباشرة (لمزيد من التفاصيل، ارجع إلى صفحة [[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
 +
 
 +
== المعاملات ==
 +
 
 +
=== <code>startIndex</code> ===
 +
عدد صحيح يشير إلى فهرس المحرف الذي يمثل بداية الجزء المراد استبداله.
  
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
+
=== <code>endIndex</code> ===
 +
عدد صحيح يشير إلى فهرس المحرف الذي يمثل نهاية الجزء المراد استبداله (لا يدخل هذا المحرف ضمن المجال المُستبدَل).
 +
 
 +
=== <code>range</code> ===
 +
مجال من النوع <code>[[Kotlin/ranges/IntRange|IntRange]]</code> يحدد مجال الجزء المراد استبداله.
 +
 
 +
=== <code>replacement</code> ===
 +
السلسلة النصية التي ستحل مكان الجزء المحدد بالعنصر ذي الفهرس <code>startIndex</code> والعنصر ذي الفهرس  <code>endIndex</code>، أو المحدد بالمجال <code>range</code>.
  
 
==القيم المعادة==
 
==القيم المعادة==
[[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]].  
+
تعاد [[Kotlin/CharSequence/index|سلسلة من المحارف]] أو [[Kotlin/String|سلسلة نصية]] تحوي جميع محارف سلسلة المحارف أو السلسلة النصية المعطاة بعد تبديل قيمة المعامل <code>replacement</code> مكان الجزء المحدد بالعنصر ذي الفهرس <code>startIndex</code> والعنصر ذي الفهرس  <code>endIndex</code>، أو المحدد بالمجال <code>range</code>.  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()replaceRange</code> مع تمرير ثلاث وسائط===
+
مثالٌ على استعمال الدالة <code>()replaceRange</code><nowiki/><nowiki/>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()replaceRange</code> عبرها مع تمرير عددين و<nowiki/>[[Kotlin/String|سلسلة نصية]] كوسائط، <nowiki/>ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val str = "Hsoub wiki"  
+
    val str = "Hsoub wiki"
      
+
 
println( str.replaceRange (6,10,"academy") ) // Hsoub academy
+
     println( str.replaceRange(6, 10, "academy")) // Hsoub academy
}
+
     println( str.replaceRange(6..9, "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>) {
 
val str = "Hsoub wiki"
 
      
 
println( str.replaceRange (6..9,"academy") ) // Hsoub academy
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
* <code>[[Kotlin/kotlin.text/replaceAfter|replaceAfter()]]‎</code>: تعيد الدالة <code>replaceAfter()‎</code> [[Kotlin/String|سلسلة نصية]] جديدة تساوي [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها مع تعويض الجزء الذي يظهر بعد الوسيط المُمرّر <code>delimiter</code> [[Kotlin/String|بالسلسلة النصية]] <code>replacement</code>. إن لم لم تحتو  [[Kotlin/String|السلسلة النصية]] على <code>delimiter</code> فستعيد <code>missingDelimiterValue</code> والذي يساوي افتراضيا [[Kotlin/String|السلسلة النصية]] الأصلية. 
+
*الدالة <code>[[Kotlin/kotlin.text/replace|replace()]]</code>: تبدل محرفًا جديدًا مكان محرف قديم، أو سلسلة نصية جديدة مكان سلسلة نصية قديمة، أو سلسلة نصية جديدة أو ناتج تنفيذ دالة مكان كل ما يطابق تعبير نمطي معين في سلسلة نصية أو سلسلة من المحارف.
 
+
*الدالة <code>[[Kotlin/kotlin.text/replace|replace()]]</code>: تبدل محرفًا جديدًا مكان محرف قديم، أو سلسلة نصية جديدة مكان سلسلة نصية قديمة، أو سلسلة نصية جديدة أو ناتج تنفيذ دالة مكان كل ما يطابق تعبير نمطي معين في سلسلة نصية أو سلسلة من المحارف.
* <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/replaceAfter|replaceAfter()‎]]</code>: تبدل<nowiki/>[[Kotlin/String|سلسلة نصية]] مكان كل الجزء الواقع بعد أول ظهور [[Kotlin/Char|لمحرف]] أو [[Kotlin/String|لسلسلة نصية]] معينة في [[Kotlin/String|سلسلة نصية]] . 
* <code>[[Kotlin/kotlin.text/asSequence|asSequence()]]</code>: تنشئ كائنًا من الصنف <code>Sequence</code> والذي يُغلّف سلسلة الحروف التي استُدعيت عبرها، لأجل استعمالها في الحلقات التكرارية.
+
*الدالة <code>[[Kotlin/kotlin.text/replaceAfterLast|replaceAfterLast()‎]]</code>: تبدل<nowiki/>[[Kotlin/String|سلسلة نصية]] مكان كل الجزء الواقع بعد آخر ظهور [[Kotlin/Char|لمحرف]] أو [[Kotlin/String|لسلسلة نصية]] معينة في [[Kotlin/String|سلسلة نصية]] .  
 
+
*الدالة <code>[[Kotlin/kotlin.text/replaceBefore|replaceBefore()]]</code>: تبدل [[Kotlin/String|سلسلة نصية]] مكان كل الجزء الواقع قبل أول ظهور [[Kotlin/Char|لمحرف]] أو [[Kotlin/String|لسلسلة نصية]] معينة في [[Kotlin/String|سلسلة نصية]].  
 +
*الدالة <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/Regex/find|find()]]</code>: تبحث عن أول محرف متطابق مع <nowiki/>[[Kotlin/kotlin.text/Regex/index|التعبير النمطي]] الذي استُدعي معها في <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] الممرَّرة إليها. يمكن البحث في <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] المعطاة بأكملها، أو يمكن بدء عملية البحث عند محرف معين.
 
==مصادر==
 
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/replace-range.html الدالة text.replaceRange()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/replace-range.html صفحة الدالة replaceRange()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Function]]
 
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Text]]

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

تبدِّل الدالة replaceRange()‎ سلسلة معينة من المحارف مكان جزء محدد في سلسلة من المحارف أو سلسلة نصية.

سيُرمَى الاستثناء IndexOutOfBoundsException إن وقع مجال الجزء المحدد المراد استبداله خارج مجال سلسلة المحارف أو السلسلة النصية المعطاة.

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

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

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

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

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

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

المعاملات

startIndex

عدد صحيح يشير إلى فهرس المحرف الذي يمثل بداية الجزء المراد استبداله.

endIndex

عدد صحيح يشير إلى فهرس المحرف الذي يمثل نهاية الجزء المراد استبداله (لا يدخل هذا المحرف ضمن المجال المُستبدَل).

range

مجال من النوع IntRange يحدد مجال الجزء المراد استبداله.

replacement

السلسلة النصية التي ستحل مكان الجزء المحدد بالعنصر ذي الفهرس startIndex والعنصر ذي الفهرس endIndex، أو المحدد بالمجال range.

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

تعاد سلسلة من المحارف أو سلسلة نصية تحوي جميع محارف سلسلة المحارف أو السلسلة النصية المعطاة بعد تبديل قيمة المعامل replacement مكان الجزء المحدد بالعنصر ذي الفهرس startIndex والعنصر ذي الفهرس endIndex، أو المحدد بالمجال range.

أمثلة

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

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

    println( str.replaceRange(6, 10, "academy")) // Hsoub academy
    println( str.replaceRange(6..9, "academy"))               // Hsoub academy
}

انظر أيضًا

مصادر