الفرق بين المراجعتين لصفحة: «Kotlin/kotlin.text/split»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) مراجعة وتدقيق. |
||
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code> | <noinclude>{{DISPLAYTITLE: الدالة <code>split()</code> في Kotlin}}</noinclude> | ||
<nowiki/><nowiki/>تقتطع الدالة <code>split()</code> المحارف الموجودة بين الأجزاء المتطابقة مع <nowiki/>[[Kotlin/kotlin.text/Regex|تعبير نمطي]] معين أو بين سلاسل نصية أو محارف معينة في <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] الممررة إليها وتعيدها في قائمة. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
سطر 7: | سطر 7: | ||
limit: Int = 0 | limit: Int = 0 | ||
): List<String> | ): List<String> | ||
inline fun CharSequence.split( | inline fun CharSequence.split( | ||
سطر 13: | سطر 12: | ||
limit: Int = 0 | limit: Int = 0 | ||
): List<String> | ): List<String> | ||
fun CharSequence.split( | fun CharSequence.split( | ||
vararg delimiters: String, | vararg delimiters: String, | ||
سطر 19: | سطر 18: | ||
limit: Int = 0 | limit: Int = 0 | ||
): List<String> | ): List<String> | ||
fun CharSequence.split( | fun CharSequence.split( | ||
vararg delimiters: Char, | vararg delimiters: Char, | ||
سطر 27: | سطر 24: | ||
limit: Int = 0 | limit: Int = 0 | ||
): List<String> | ): List<String> | ||
</syntaxhighlight> | </syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة <nowiki/>[[Kotlin/inline functions|الدوال المباشرة (inline functions)]]). | ||
==المعاملات== | |||
===<code>regex</code>=== | |||
النمط أو [[Kotlin/kotlin.text/Regex|التعبير النمطي]] الذي يراد أن يطابق سلسلة المحارف المعطاة. | |||
===<code>limit</code>=== | |||
عدد صحيح موجب يحدد الحد الأقصى لعدد الأجزاء المقتطعة المراد جلبها. قيمته الافتراضية هي: 0 أي لا يوجد حد أقصى. | |||
===<code>delimiters</code>=== | |||
سلسلة نصية واحدة أو أكثر أو محرف واحد أو أكثر تمثل الفواصل بين الأجزاء الواقعة بينها التي يراد جلبها. | |||
لتجنب الالتباس الناتج عند وجود محارف مشتركة بين السلاسل النصية الموجودة في المعامل <code>delimiters</code>، فإنّ الدالة <code>split()</code> تبدأ من بداية سلسلة المحارف المعطاة وحتى نهايتها باحثةً عن العنصر الأول في <code>strings</code> ثم الثاني ثم الثالث ...إلخ. عند كل محرف من محارفها لمطابقة ذلك العنصر في سلسلة المحارف المعطاة . | |||
===<code>ignoreCase</code>=== | |||
قيمة منطقية تحدد إن كان يراد تجاهل حالة الأحرف أثناء إجراء عملية الموازنة أم لا. القيمة الافتراضية هي: <code>false</code> (أي أخذ حالة الأحرف بالحسبان). | |||
==القيم المعادة== | ==القيم المعادة== | ||
تعاد قائمة من [[Kotlin/String|سلاسل نصية]] تحوي الأجزاء المقتطعة من السلسلة النصية المعطاة والواقعة بين الأجزاء المتطابقة مع التعبير النمطي <code>regex</code> أو الموجودة بين الفواصل <code>delimiters</code>. | |||
==أمثلة== | ==أمثلة== | ||
مثالٌ على استعمال الدالة <code>()split</code> مع [[Kotlin/String|سلسلة نصية]]:<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.split(".")) // [wiki, hsoub, com] | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight>مثالٌ آخر على استعمال الدالة <code>()split</code> مع [[Kotlin/kotlin.text/Regex/index|تعبير نمطي]]:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val str2 = "aa132bfd4xyz" | val str2 = "aa132bfd4xyz" | ||
// يطابق التعبير النمطي التالي القيم العددية | |||
val reg = Regex("""-?\d+(\.\d+)?""") | |||
println(str2.split(reg)) // [aa, bfd, xyz] | |||
println(str2.split(reg)) // [aa, bfd, xyz] | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* <code>[[Kotlin/kotlin.text/ | * الدالة <code>[[Kotlin/kotlin.text/Regex/split|split()]]</code>: تقتطع المحارف الموجودة بين الأجزاء المتطابقة مع <nowiki/>[[Kotlin/kotlin.text/Regex|التعبير النمطي]] الذي استُدعي معها في <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] الممررة إليها. | ||
*الدالة <code>[[Kotlin/kotlin.text/splitToSequence|splitToSequence()]]</code>: تقتطع المحارف الموجودة بين الأجزاء المتطابقة مع <nowiki/>[[Kotlin/kotlin.text/Regex|تعبير نمطي]] معين أو بين سلاسل نصية أو محارف معينة في <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] الممررة إليها وتعيدها في سلسلة. | |||
* <code>[[Kotlin/kotlin.text/ | *الدالة <code>[[Kotlin/kotlin.text/slice|slice()]]</code>: تقطتع جزءًا محدَّدًا من <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] أو [[Kotlin/String|السلسلة النصية]] التي استُدعيت معها ثمَّ تعيده. | ||
* <code>[[Kotlin/kotlin.text/ | |||
==مصادر== | ==مصادر== | ||
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/split.html الدالة | *[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/split.html صفحة الدالة split() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Text]] |
المراجعة الحالية بتاريخ 13:48، 5 سبتمبر 2018
تقتطع الدالة split()
المحارف الموجودة بين الأجزاء المتطابقة مع تعبير نمطي معين أو بين سلاسل نصية أو محارف معينة في سلسلة المحارف الممررة إليها وتعيدها في قائمة.
البنية العامة
fun CharSequence.split(
regex: Pattern,
limit: Int = 0
): List<String>
inline fun CharSequence.split(
regex: Regex,
limit: Int = 0
): List<String>
fun CharSequence.split(
vararg delimiters: String,
ignoreCase: Boolean = false,
limit: Int = 0
): List<String>
fun CharSequence.split(
vararg delimiters: Char,
ignoreCase: Boolean = false,
limit: Int = 0
): List<String>
وجود الكلمة المفتاحية inline
يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)).
المعاملات
regex
النمط أو التعبير النمطي الذي يراد أن يطابق سلسلة المحارف المعطاة.
limit
عدد صحيح موجب يحدد الحد الأقصى لعدد الأجزاء المقتطعة المراد جلبها. قيمته الافتراضية هي: 0 أي لا يوجد حد أقصى.
delimiters
سلسلة نصية واحدة أو أكثر أو محرف واحد أو أكثر تمثل الفواصل بين الأجزاء الواقعة بينها التي يراد جلبها.
لتجنب الالتباس الناتج عند وجود محارف مشتركة بين السلاسل النصية الموجودة في المعامل delimiters
، فإنّ الدالة split()
تبدأ من بداية سلسلة المحارف المعطاة وحتى نهايتها باحثةً عن العنصر الأول في strings
ثم الثاني ثم الثالث ...إلخ. عند كل محرف من محارفها لمطابقة ذلك العنصر في سلسلة المحارف المعطاة .
ignoreCase
قيمة منطقية تحدد إن كان يراد تجاهل حالة الأحرف أثناء إجراء عملية الموازنة أم لا. القيمة الافتراضية هي: false
(أي أخذ حالة الأحرف بالحسبان).
القيم المعادة
تعاد قائمة من سلاسل نصية تحوي الأجزاء المقتطعة من السلسلة النصية المعطاة والواقعة بين الأجزاء المتطابقة مع التعبير النمطي regex
أو الموجودة بين الفواصل delimiters
.
أمثلة
مثالٌ على استعمال الدالة ()split
مع سلسلة نصية:
fun main(args: Array<String>) {
val str = "wiki.hsoub.com"
println(str.split(".")) // [wiki, hsoub, com]
}
مثالٌ آخر على استعمال الدالة ()split
مع تعبير نمطي:
fun main(args: Array<String>) {
val str2 = "aa132bfd4xyz"
// يطابق التعبير النمطي التالي القيم العددية
val reg = Regex("""-?\d+(\.\d+)?""")
println(str2.split(reg)) // [aa, bfd, xyz]
}
انظر أيضًا
- الدالة
split()
: تقتطع المحارف الموجودة بين الأجزاء المتطابقة مع التعبير النمطي الذي استُدعي معها في سلسلة المحارف الممررة إليها. - الدالة
splitToSequence()
: تقتطع المحارف الموجودة بين الأجزاء المتطابقة مع تعبير نمطي معين أو بين سلاسل نصية أو محارف معينة في سلسلة المحارف الممررة إليها وتعيدها في سلسلة. - الدالة
slice()
: تقطتع جزءًا محدَّدًا من سلسلة المحارف أو السلسلة النصية التي استُدعيت معها ثمَّ تعيده.