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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.replaceAfter()‎</code> في لغة Kotlin}}</noinclude> يختلف سلوك الدالة <code>replaceAfter()‎</co...'
 
مراجعة وتدقيق.
 
(4 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.replaceAfter()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>replaceAfter()‎</code> في Kotlin}}</noinclude>
يختلف سلوك الدالة <code>replaceAfter()‎</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>replaceAfter()‎</code> [[Kotlin/String|سلسلة نصية]] مكان كل الجزء الواقع بعد أول ظهور [[Kotlin/Char|لمحرف]] أو [[Kotlin/String|لسلسلة نصية]] معينة في [[Kotlin/String|سلسلة نصية]].  
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
actual fun String.replace(
fun String.replaceAfter(
     oldChar: Char,  
     delimiter: Char,  
     newChar: Char,  
     replacement: String,
     ignoreCase: Boolean = false
    missingDelimiterValue: String = this
): String
fun String.replaceAfter(
    delimiter: String,
    replacement: String,  
     missingDelimiterValue: String = this
): String
): String
</syntaxhighlight>في حال استدعاء  الدالة <code>replace()‎</code> عبر [[Kotlin/String|سلسلة نصية]] مع تمرير حرفين<code>oldChar</code> و <code>newChar</code> كوسيطين فستعيد  [[Kotlin/String|سلسلة نصية]] جديدة مع تعويض الحرف <code>oldChar</code> بالحرف <code>newChar</code>.<syntaxhighlight lang="kotlin">
</syntaxhighlight>
actual fun String.replace(
 
    oldValue: String,
== المعاملات ==
    newValue: String,
 
    ignoreCase: Boolean = false
=== <code>delimiter</code> ===
): String
المحرف أو السلسلة النصية التي يراد استبدال كامل الجزء الواقع بعدها.
</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(
=== <code>replacement</code> ===
    regex: Regex,
السلسلة النصية التي ستحل مكان الجزء الواقع بعد المعامل <code>delimiter</code>.
    replacement: String
 
): String
=== <code>missingDelimiterValue</code> ===
</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">
السلسلة النصية التي ستعاد في حال لم يكن المعامل <code>delimiter</code> موجودًا ضمن السلسلة النصية المعطاة. القيمة الافتراضية هي: <code>this</code> (أي السلسلة النصية المعطاة نفسها).
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/String|سلسلة نصية]] تحوي جميع محتوى السلسلة النصية المعطاة بعد تبديل قيمة المعامل <code>replacement</code> مكان أول ظهور للجزء الواقع بعد المعامل <code>delimiter</code> فيها.
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()replaceAfter</code> مع سلسلة نصية===
مثالٌ على استعمال الدالة <code>()replaceAfter</code>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()replaceAfter</code> عبرها مع تجريب عدة أنواع من الوسائط، <nowiki/>ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val str = "abc12rad234com"  
    val str = "wiki.hsoub.com"
      
 
println( str.replace ('a','X') ) // Xbc12rXd234com
     println(str.replaceAfter('.', "foo")) // wiki.foo
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>[[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/replace|replace()]]</code>: تبدل محرفًا جديدًا مكان محرف قديم، أو سلسلة نصية جديدة مكان سلسلة نصية قديمة، أو سلسلة نصية جديدة أو ناتج تنفيذ دالة مكان كل ما يطابق تعبير نمطي معين في سلسلة نصية أو سلسلة من المحارف.
 
* الدالة <code>[[Kotlin/kotlin.text/replaceFirst|replaceFirst()]]</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/replaceAfterLast|replaceAfterLast()‎]]</code>: تبدل<nowiki/>[[Kotlin/String|سلسلة نصية]] مكان كل الجزء الواقع بعد آخر ظهور [[Kotlin/Char|لمحرف]] أو [[Kotlin/String|لسلسلة نصية]] معينة في [[Kotlin/String|سلسلة نصية]] .  
* <code>[[Kotlin/kotlin.text/asSequence|asSequence()]]</code>: تنشئ كائنًا من الصنف <code>Sequence</code> والذي يُغلّف سلسلة الحروف التي استُدعيت عبرها، لأجل استعمالها في الحلقات التكرارية.
* الدالة <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/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/replace.html الدالة text.replaceAfter()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/replace-after.html صفحة الدالة replaceAfter()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Text]]

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

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

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

fun String.replaceAfter(
    delimiter: Char, 
    replacement: String, 
    missingDelimiterValue: String = this
): String 
fun String.replaceAfter(
    delimiter: String, 
    replacement: String, 
    missingDelimiterValue: String = this
): String

المعاملات

delimiter

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

replacement

السلسلة النصية التي ستحل مكان الجزء الواقع بعد المعامل delimiter.

missingDelimiterValue

السلسلة النصية التي ستعاد في حال لم يكن المعامل delimiter موجودًا ضمن السلسلة النصية المعطاة. القيمة الافتراضية هي: this (أي السلسلة النصية المعطاة نفسها).

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

تعاد سلسلة نصية تحوي جميع محتوى السلسلة النصية المعطاة بعد تبديل قيمة المعامل replacement مكان أول ظهور للجزء الواقع بعد المعامل delimiter فيها.

أمثلة

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

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

    println(str.replaceAfter('.', "foo")) // wiki.foo
}

انظر أيضًا

مصادر