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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.splitToSequence()‎</code> في لغة Kotlin}}</noinclude> يختلف سلوك الدالة <code>splitToSequence()...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.splitToSequence()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>text.splitToSequence()‎</code> في لغة Kotlin}}</noinclude>
يختلف سلوك الدالة <code>splitToSequence()‎</code> بحسب أنواع الوسائط المُمررة (انظر فقرة [[Kotlin/kotlin.text/split#.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>splitToSequence()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير <code>delimiters</code> كوسيط فستعيد سلسلة (sequence) مكونة من  [[Kotlin/String|السلاسل النصية]] الموجودة حول المُحدِّدات المُتضمّنة في <code>delimiters.</code>
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
fun CharSequence.split(
fun CharSequence.splitToSequence(
    regex: Pattern,
    limit: Int = 0
): List<String>
Platform and version requirements: JVM
 
inline fun CharSequence.split(
    regex: Regex,
    limit: Int = 0
): List<String>
</syntaxhighlight>في حال استدعاء  الدالة <code>splitToSequence()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير [[Kotlin/kotlin.text/Regex/index|تعبير نمطي]] <code>regex</code> كوسيط فستعيد لائحة مكونة من  [[Kotlin/String|السلاسل النصية]] الموجودة حول مُطابقات  [[Kotlin/kotlin.text/Regex/index|التعبير النمطي]] <code>regex.</code> الوسيط <code>limit</code> يحدد الحد الأقصى لعدد  [[Kotlin/String|السلاسل النصية]] في اللائحة المُعادة.<syntaxhighlight lang="kotlin">
fun CharSequence.split(
     vararg delimiters: String,  
     vararg delimiters: String,  
     ignoreCase: Boolean = false,  
     ignoreCase: Boolean = false,  
     limit: Int = 0
     limit: Int = 0
): List<String>
): Sequence<String>
</syntaxhighlight>في حال استدعاء  الدالة <code>splitToSequence()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير [[Kotlin/String|سلسلة نصية]] <code>delimiters</code> كوسيط فستعيد لائحة مكونة من  [[Kotlin/String|السلاسل النصية]] الموجودة حول المُحدِّدات المُتضمّنة في <code>delimiters.</code> الوسيط <code>limit</code> يحدد الحد الأقصى لعدد  [[Kotlin/String|السلاسل النصية]] في اللائحة المُعادة. والوسيط <code>ignoreCase </code>يحدد ما إذا كانت الدالة ستتجاهل حالة الأحرف (أي لا تفرق بين الحروف الصغيرة والكبيرة).  
</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">
لتجنب الالتباس عندما تحتوي السلاسل النصية الموجودة في الوسيط المُمرّر <code>delimiters</code> حروفا مشتركة، فإنّ الدالة <code>findAnyOf()</code>‎ تبدأ من بداية تلك السلسلة النصية نحو نهايتها، وتبحث عند كل موضع عن العنصر الأول في <code>delimiters</code>والذي يطابق أحد العناصر  الموجودة في <code>delimiters</code>عند ذلك الموضع.<syntaxhighlight lang="kotlin">
سطر 27: سطر 16:
     limit: Int = 0
     limit: Int = 0
): List<String>
): List<String>
</syntaxhighlight>في حال استدعاء  الدالة <code>splitToSequence()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير سلسلة الحروف  <code>delimiters</code> فستعيد لائحة مكونة من  [[Kotlin/String|السلاسل النصية]] الموجودة حول المُحدِّدات المُتضمّنة في <code>delimiters.</code> الوسيط <code>limit</code> يحدد الحد الأقصى لعدد  [[Kotlin/String|السلاسل النصية]] في اللائحة المُعادة. والوسيط <code>ignoreCase </code>يحدد ما إذا كانت الدالة ستتجاهل حالة الأحرف (أي لا تفرق بين الحروف الصغيرة والكبيرة).  
</syntaxhighlight>في حال استدعاء  الدالة <code>splitToSequence()‎</code> عبر [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير سلسلة الحروف  <code>delimiters</code> فستعيد سلسلة (sequence ) مكونة من  [[Kotlin/String|السلاسل النصية]] الموجودة حول المُحدِّدات المُتضمّنة في <code>delimiters.</code> الوسيط <code>limit</code> يحدد الحد الأقصى لعدد  [[Kotlin/String|السلاسل النصية]] في اللائحة المُعادة. والوسيط <code>ignoreCase </code>يحدد ما إذا كانت الدالة ستتجاهل حالة الأحرف (أي لا تفرق بين الحروف الصغيرة والكبيرة).  


يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].


==القيم المعادة==
==القيم المعادة==
لائحة مكونة [[Kotlin/String|سلاسل نصية]].  
سلسلة (sequence ) مكونة [[Kotlin/String|سلاسل نصية]].  
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()split</code> مع سلسلة نصية===
===استخدام الدالة <code>()splitToSequence</code> مع سلسلة نصية===
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()split</code> عبرها مع تمرير [[Kotlin/String|سلسلة نصية]]<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.split(".")) // [wiki, hsoub, com]
println(str.splitToSequence(".").toList()) // [wiki, hsoub, com]
}
</syntaxhighlight>
===استخدام الدالة <code>()splitToSequence</code> مع سلسلة نصية مع تمرير تعبير منطقي===
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()splitToSequence</code> عبرها مع تمرير [[Kotlin/kotlin.text/Regex/index|تعبير نمطي]] كوسيط، ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
val str2 = "aa132bfd4xyz"
 
val reg = Regex("""-?\d+(\.\d+)?""") // يطابق هذا التعبير النمطي التعابير العددية، مثل: 45
   
println(str2.split(reg)) // [aa, bfd, xyz]
}
}
</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/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|السلسلة النصية]] الأصلية. 


سطر 59: سطر 37:


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

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

في حال استدعاء الدالة splitToSequence()‎ عبر سلسلة حروف مع تمرير delimiters كوسيط فستعيد سلسلة (sequence) مكونة من السلاسل النصية الموجودة حول المُحدِّدات المُتضمّنة في delimiters.

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

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

في حال استدعاء الدالة splitToSequence()‎ عبر سلسلة حروف مع تمرير سلسلة نصية delimiters كوسيط فستعيد سلسلة (sequence ) مكونة من السلاسل النصية الموجودة حول المُحدِّدات المُتضمّنة في delimiters. الوسيط limit يحدد الحد الأقصى لعدد السلاسل النصية في السلسلة المُعادة. والوسيط ignoreCase يحدد ما إذا كانت الدالة ستتجاهل حالة الأحرف (أي لا تفرق بين الحروف الصغيرة والكبيرة). لتجنب الالتباس عندما تحتوي السلاسل النصية الموجودة في الوسيط المُمرّر delimiters حروفا مشتركة، فإنّ الدالة findAnyOf()‎ تبدأ من بداية تلك السلسلة النصية نحو نهايتها، وتبحث عند كل موضع عن العنصر الأول في delimitersوالذي يطابق أحد العناصر الموجودة في delimitersعند ذلك الموضع.

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

في حال استدعاء الدالة splitToSequence()‎ عبر سلسلة حروف مع تمرير سلسلة الحروف  delimiters فستعيد سلسلة (sequence ) مكونة من السلاسل النصية الموجودة حول المُحدِّدات المُتضمّنة في delimiters. الوسيط limit يحدد الحد الأقصى لعدد السلاسل النصية في اللائحة المُعادة. والوسيط ignoreCase يحدد ما إذا كانت الدالة ستتجاهل حالة الأحرف (أي لا تفرق بين الحروف الصغيرة والكبيرة).


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

سلسلة (sequence ) مكونة سلاسل نصية.

أمثلة

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

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

fun main(args: Array<String>) {
val str = "wiki.hsoub.com"
    
println(str.splitToSequence(".").toList()) // [wiki, hsoub, com]
}

انظر أيضًا

مصادر