الدالة text.split()
في لغة Kotlin
يختلف سلوك الدالة split()
بحسب أنواع الوسائط المُمررة (انظر فقرة البنيةالعامة).
البنية العامة
fun CharSequence.split(
regex: Pattern,
limit: Int = 0
): List<String>
Platform and version requirements: JVM
inline fun CharSequence.split(
regex: Regex,
limit: Int = 0
): List<String>
في حال استدعاء الدالة split()
عبر سلسلة حروف مع تمرير تعبير نمطي regex
كوسيط فستعيد لائحة مكونة من السلاسل النصية الموجودة حول مُطابقات التعبير النمطي regex.
الوسيط limit
يحدد الحد الأقصى لعدد السلاسل النصية في اللائحة المُعادة.
fun CharSequence.split(
vararg delimiters: String,
ignoreCase: Boolean = false,
limit: Int = 0
): List<String>
في حال استدعاء الدالة split()
عبر سلسلة حروف مع تمرير سلسلة نصية delimiters
كوسيط فستعيد لائحة مكونة من السلاسل النصية الموجودة حول المُحدِّدات المُتضمّنة في delimiters.
الوسيط limit
يحدد الحد الأقصى لعدد السلاسل النصية في اللائحة المُعادة. والوسيط ignoreCase
يحدد ما إذا كانت الدالة ستتجاهل حالة الأحرف (أي لا تفرق بين الحروف الصغيرة والكبيرة).
لتجنب الالتباس عندما تحتوي السلاسل النصية الموجودة في الوسيط المُمرّر delimiters
حروفا مشتركة، فإنّ الدالة findAnyOf()
تبدأ من بداية تلك السلسلة النصية نحو نهايتها، وتبحث عند كل موضع عن العنصر الأول في delimiters
والذي يطابق أحد العناصر الموجودة في delimiters
عند ذلك الموضع.
fun CharSequence.split(
vararg delimiters: Char,
ignoreCase: Boolean = false,
limit: Int = 0
): List<String>
في حال استدعاء الدالة split()
عبر سلسلة حروف مع تمرير سلسلة الحروف delimiters
فستعيد لائحة مكونة من السلاسل النصية الموجودة حول المُحدِّدات المُتضمّنة في delimiters.
الوسيط limit
يحدد الحد الأقصى لعدد السلاسل النصية في اللائحة المُعادة. والوسيط ignoreCase
يحدد ما إذا كانت الدالة ستتجاهل حالة الأحرف (أي لا تفرق بين الحروف الصغيرة والكبيرة).
يُلاحَظ وجود الكلمة المفتاحية inline
للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المعادة
لائحة مكونة سلاسل نصية.
أمثلة
استخدام الدالة ()split
مع سلسلة نصية
تعرِّف الشيفرة الآتية سلسلة نصية باسم str
، ثمَّ تستدعي الدالة ()split
عبرها مع تمرير سلسلة نصيةكوسيط، ثمَّ تطبع الناتج:
fun main(args: Array<String>) {
val str = "wiki.hsoub.com"
println(str.split(".")) // [wiki, hsoub, com]
}
استخدام الدالة ()split
مع سلسلة نصية مع تمرير تعبير منطقي
تعرِّف الشيفرة الآتية سلسلة نصية باسم str
، ثمَّ تستدعي الدالة ()split
عبرها مع تمرير تعبير نمطي كوسيط، ثمَّ تطبع الناتج:
fun main(args: Array<String>) {
val str2 = "aa132bfd4xyz"
val reg = Regex("""-?\d+(\.\d+)?""") // يطابق هذا التعبير النمطي التعابير العددية، مثل: 45
println(str2.split(reg)) // [aa, bfd, xyz]
}
انظر أيضًا
replaceAfter()
: تعيد الدالةreplaceAfter()
سلسلة نصية جديدة تساوي السلسلة النصية التي استُدعيت عبرها مع تعويض الجزء الذي يظهر بعد الوسيط المُمرّرdelimiter
بالسلسلة النصيةreplacement
. إن لم لم تحتو السلسلة النصية علىdelimiter
فستعيدmissingDelimiterValue
والذي يساوي افتراضيا السلسلة النصية الأصلية.
removeSuffix()
: إن كانت السلسلة النصية أو سلسلة الحروف التي استٌدعيت عبرها الدالةremoveSuffix()
تنتهي باللاحقةsuffix
فستعيد سلسلة نصية أو سلسلة حروف جديدة مع حذف تلك اللاحقة، وإلا فستعيد السلسلة النصية أو سلسلة الحروف كما هي.slice()
: تعيد الدالةslice()
سلسلة حروف أو سلسلة نصية جديدة تحتوي الحروف التي تنتمي فهارسها إلى الوسيط المُمرر.