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

من موسوعة حسوب
ط استبدال النص - 'Kotlin Functions' ب'Kotlin Function'
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.splitToSequence()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>text.splitToSequence()‎</code> في لغة Kotlin}}</noinclude>
في حال استدعاء  الدالة <code>splitToSequence()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير <code>delimiters</code> كوسيط فستعيد سلسلة (sequence) مكونة من  [[Kotlin/String|السلاسل النصية]] الموجودة حول المُحدِّدات المُتضمّنة في <code>delimiters.</code>
تقتطع الدالة <code>splitToSequence()‎</code> المحارف الموجودة بين الأجزاء المتطابقة مع <nowiki/>[[Kotlin/kotlin.text/Regex|تعبير نمطي]] معين أو بين سلاسل نصية أو محارف معينة في <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] الممررة إليها وتعيدها في سلسلة. 
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
سطر 8: سطر 8:
     limit: Int = 0
     limit: Int = 0
): Sequence<String>
): Sequence<String>
</syntaxhighlight>في حال استدعاء  الدالة <code>splitToSequence()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير [[Kotlin/String|سلسلة نصية]] <code>delimiters</code> كوسيط فستعيد سلسلة (sequence ) مكونة من  [[Kotlin/String|السلاسل النصية]] الموجودة حول المُحدِّدات المُتضمّنة في <code>delimiters.</code> الوسيط <code>limit</code> يحدد الحد الأقصى لعدد  [[Kotlin/String|السلاسل النصية]] في السلسلة المُعادة. والوسيط <code>ignoreCase </code>يحدد ما إذا كانت الدالة ستتجاهل حالة الأحرف (أي لا تفرق بين الحروف الصغيرة والكبيرة).


لتجنب الالتباس عندما تحتوي السلاسل النصية الموجودة في الوسيط المُمرّر <code>delimiters</code> حروفا مشتركة، فإنّ الدالة <code>findAnyOf()</code>‎ تبدأ من بداية تلك السلسلة النصية نحو نهايتها، وتبحث عند كل موضع عن العنصر الأول في <code>delimiters</code>والذي يطابق أحد العناصر  الموجودة في <code>delimiters</code>عند ذلك الموضع.<syntaxhighlight lang="kotlin">
fun CharSequence.split(
fun CharSequence.split(
     vararg delimiters: Char,  
     vararg delimiters: Char,  
سطر 16: سطر 14:
     limit: Int = 0
     limit: Int = 0
): List<String>
): List<String>
</syntaxhighlight>في حال استدعاء  الدالة <code>splitToSequence()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير سلسلة الحروف  <code>delimiters</code> فستعيد سلسلة (sequence ) مكونة من  [[Kotlin/String|السلاسل النصية]] الموجودة حول المُحدِّدات المُتضمّنة في <code>delimiters.</code> الوسيط <code>limit</code> يحدد الحد الأقصى لعدد [[Kotlin/String|السلاسل النصية]] في اللائحة المُعادة. والوسيط <code>ignoreCase </code>يحدد ما إذا كانت الدالة ستتجاهل حالة الأحرف (أي لا تفرق بين الحروف الصغيرة والكبيرة).  
</syntaxhighlight>
 
==المعاملات==
===<code>regex</code>===
النمط أو [[Kotlin/kotlin.text/Regex|التعبير النمطي]] الذي يراد أن يطابق سلسلة المحارف المعطاة.
===<code>limit</code>===
عدد صحيح موجب يحدد الحد الأقصى لعدد الأجزاء المقتطعة المراد جلبها. قيمته الافتراضية هي: 0 أي لا يوجد حد أقصى.
===<code>delimiters</code>===
سلسلة نصية واحدة أو أكثر أو محرف واحد أو أكثر تمثل الفواصل بين الأجزاء الواقعة بينها التي يراد جلبها.


لتجنب الالتباس الناتج عند وجود محارف مشتركة بين السلاسل النصية الموجودة في المعامل <code>delimiters</code>، فإنّ الدالة <code>splitToSequence()</code>‎ تبدأ من بداية سلسلة المحارف المعطاة وحتى نهايتها باحثةً عن العنصر الأول في <code>strings</code> ثم الثاني ثم الثالث ...إلخ. عند كل محرف من محارفها لمطابقة ذلك العنصر في سلسلة المحارف المعطاة .
===<code>ignoreCase</code>===
قيمة منطقية تحدد إن كان يراد تجاهل حالة الأحرف أثناء إجراء عملية الموازنة أم لا. القيمة الافتراضية هي: <code>false</code> (أي أخذ حالة الأحرف بالحسبان).
==القيم المعادة==
==القيم المعادة==
سلسلة (sequence ) مكونة [[Kotlin/String|سلاسل نصية]].  
تعاد [[Kotlin/sequences/Sequence|سلسلة]] من [[Kotlin/String|سلاسل نصية]] تحوي الأجزاء المقتطعة من السلسلة النصية المعطاة والواقعة بين الأجزاء المتطابقة مع التعبير النمطي <code>regex</code> أو الموجودة بين الفواصل <code>delimiters</code>. 
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()splitToSequence</code> مع سلسلة نصية===
مثالٌ على استعمال الدالة <code>()splitToSequence</code><nowiki/><nowiki/>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()splitToSequence</code> عبرها مع تمرير [[Kotlin/String|سلسلة نصية]] <nowiki/>كوسيط، <nowiki/>ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val str = "wiki.hsoub.com"
    val str = "wiki.hsoub.com"
      
 
println(str.splitToSequence(".").toList()) // [wiki, hsoub, com]
     println(str.splitToSequence(".").toList()) // [wiki, hsoub, com]
}
}
</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/split|split()]]</code>: تقتطع المحارف الموجودة بين الأجزاء المتطابقة مع <nowiki/>[[Kotlin/kotlin.text/Regex|تعبير نمطي]] معين أو بين سلاسل نصية أو محارف معينة في <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] الممررة إليها وتعيدها في قائمة. 
* الدالة <code>[[Kotlin/kotlin.text/slice|slice()‎]]</code>: تقطتع جزءًا محدَّدًا من <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] أو [[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/removeSuffix|removeSuffix()]]‎</code>: إن كانت [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استٌدعيت عبرها الدالة <code>removeSuffix()‎</code> تنتهي باللاحقة <code>suffix</code> فستعيد [[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]] جديدة مع حذف تلك اللاحقة، وإلا فستعيد [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] كما هي. 
سطر 37: سطر 44:


==مصادر==
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/split-to-sequence.html الدالة text.splitToSequence()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/split-to-sequence.html صفحة الدالة splitToSequence()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Function]]

مراجعة 13:23، 5 سبتمبر 2018

تقتطع الدالة splitToSequence()‎ المحارف الموجودة بين الأجزاء المتطابقة مع تعبير نمطي معين أو بين سلاسل نصية أو محارف معينة في سلسلة المحارف الممررة إليها وتعيدها في سلسلة. 

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

fun CharSequence.splitToSequence(
    vararg delimiters: String, 
    ignoreCase: Boolean = false, 
    limit: Int = 0
): Sequence<String>

fun CharSequence.split(
    vararg delimiters: Char, 
    ignoreCase: Boolean = false, 
    limit: Int = 0
): List<String>

المعاملات

regex

النمط أو التعبير النمطي الذي يراد أن يطابق سلسلة المحارف المعطاة.

limit

عدد صحيح موجب يحدد الحد الأقصى لعدد الأجزاء المقتطعة المراد جلبها. قيمته الافتراضية هي: 0 أي لا يوجد حد أقصى.

delimiters

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

لتجنب الالتباس الناتج عند وجود محارف مشتركة بين السلاسل النصية الموجودة في المعامل delimiters، فإنّ الدالة splitToSequence()‎ تبدأ من بداية سلسلة المحارف المعطاة وحتى نهايتها باحثةً عن العنصر الأول في strings ثم الثاني ثم الثالث ...إلخ. عند كل محرف من محارفها لمطابقة ذلك العنصر في سلسلة المحارف المعطاة .

ignoreCase

قيمة منطقية تحدد إن كان يراد تجاهل حالة الأحرف أثناء إجراء عملية الموازنة أم لا. القيمة الافتراضية هي: false (أي أخذ حالة الأحرف بالحسبان).

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

تعاد سلسلة من سلاسل نصية تحوي الأجزاء المقتطعة من السلسلة النصية المعطاة والواقعة بين الأجزاء المتطابقة مع التعبير النمطي regex أو الموجودة بين الفواصل delimiters

أمثلة

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

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

    println(str.splitToSequence(".").toList()) // [wiki, hsoub, com]
}

انظر أيضًا

مصادر