English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا المقال، ستتعلم Kotlin النصوص، قوالب النصوص، وأيضاً بعض الخصائص والوظائف النصية الشائعة.
النص هو سلسلة من الحروف. على سبيل المثال، "Hello there!" هو نص كتابي.
في Kotlin، جميع النصوص هي كائنات من فئة String. هذا يعني أن النصوص مثل "Hello here!" تم تنفيذها كنموذج من هذه الفئة.
هذه هي طريقة تعريف متغير نصي في Kotlin. على سبيل المثال،
val myString = "Hey there!"
في هذا السياق، myString هو متغير نوع String.
يمكنك تعريف متغير نوع String، وتحديد نوعه في جملة واحدة، ثم تعيينه في جملة أخرى في البرنامج.
val myString: String ... .. ... myString = "Howdy"
للوصول إلى عنصر النص (حرف)، استخدم عميل الوصول إلى الفهرس. على سبيل المثال،
val myString = "Hey there!" val item = myString[2]
في هذا السياق، يحتوي المتغير item على الحرف الثالث من نص myString، y. هذا لأنه في Kotlin، تبدأ الأنماط من 0 وليس 1.
val myString = "Hey there!" var item: Char item = myString[0] // item = 'H' item = myString[9] // item = '!' item = myString[10] // خطأ! تمديد النصوص item = myString[-1] // خطأ! تمديد النصوص
إذا كنت بحاجة إلى تمرير عناصر النص (حرف)، يمكنك استخدام دورة for.دورات forسهلتنفيذ.
fun main(args: Array<String>) { val myString = "Hey!" for (item in myString) { println(item) } }
عند تشغيل هذا البرنامج، الناتج هو:
H e y !
مثل Java، النصوص غير قابلة للتغيير في Kotlin. هذا يعني أنك لا يمكنك تغيير حرف نصي واحد. على سبيل المثال،
var myString = "Hey!" myString[0] = 'h' // خطأ! نصوص
لكن، إذا تم استخدام الكلمة المفتاحية var لتحديد متغير نصي، فإنه يمكن إعادة تخصيص هذا المتغير. (اقرأ المزيد:Kotlin var مقابل val)
fun main(args: Array<String>) { var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") }
عند تشغيل هذا البرنامج، الناتج هو:
myString = حي! myString = Hello!
اللفظية هي شكل المصدر للمقادير الثابتة. على سبيل المثال، "Hey there!" هو نص موجود مباشرة في البرنامج دون الحاجة إلى الحسابات (مثلالمتغير)。
هناك نوعان من لفظيات النصوص في Kotlin:
قد تكون هناك رموز مضمنة في النص المضمن. على سبيل المثال،
val myString = "Hey there!\n"
في هذا السياق،\n هو رمز مضمن، يستخدم لإدراج مسافات سريعة في الموضع المطلوب في النص.
هذه هي قائمة محدثة من الرموز المضمنة التي يدعمها Kotlin:
\t - إدراج رمز tab
\b - إدراج رمز الـbackspace
\n - إدراج رمز النسخة
\r - إدراج رمز الرجوع
\' - إدراج رمز الـsingle quote
\" - إدراج رمز الـdouble quote
\\ - إدراج العلامة المائلة
\$ - إدراج رمز دولار
يمكن أن يحتوي النص الأصلي على مسافات سريعة (ليست مسافات سريعة) و نص معين. النص الأصلي مقسوم إلى ثلاثة أسهم """. على سبيل المثال،
fun main(args: Array<String>) { val myString = """ for (character in "Hey!") println(character) """ print(myString) }
عند تشغيل هذا البرنامج، الناتج هو:
for (character in "Hey!") println(character)
يمكنك استخدام وظيفة trimMargin() لحذف الفراغات الأمامية من النص الأصلي. على سبيل المثال،
fun main(args: Array<String>) { println("الإخراج بدون استخدامtrimMargin وظيفة:") val myString = """ |كotlin مثيرة للاهتمام. |كotlin مدعوم ومطور من JetBrains. """ println(myString) println("استخدامtrimMargin وظيفة للإخراج:\n") println(myString.trimMargin()) }
عند تشغيل هذا البرنامج، الناتج هو:
الإخراج بدون استخدامtrimMargin وظيفة: |كotlin مثيرة للاهتمام. |كotlin مدعوم ومطور من JetBrains. استخدامtrimMargin وظيفة للإخراج: كotlin مثيرة للاهتمام. كotlin مدعوم ومطور من JetBrains.
بشكل افتراضي، يستخدمtrimMargin() الوظيفة | كحرف نهاية الحد. ولكن، يمكنك تغييره عن طريق إرسال سلسلة جديدة إلى الوظيفة.
fun main(args: Array<String>) { val myString = """ !!! كotlin مثيرة للاهتمام. !!! كotlin مدعوم ومطور من JetBrains. """ println(myString.trimMargin("!!! ")) }
عند تشغيل هذا البرنامج، الناتج هو:
كotlin مثيرة للاهتمام. كotlin مدعوم ومطور من JetBrains.
يحتوي Kotlin على ميزة رائعة تُدعى قوالب السلسلة، تسمح للسلسلة بأن تحتوي على تعبيرات.
تبدأ تعبيرات قوالب السلسلة في Kotlin بمؤشر $. إليك بعض الأمثلة:
fun main(args: Array<String>) { val myInt = 5; val myString = "myInt = $myInt" println(myString) }
عند تشغيل هذا البرنامج، الناتج هو:
myInt = 5
هذا لأن التعبيرات في السلسلة $myInt (التعبيرات التي تبدأ بـ $) يتم تقييمها وربطها في السلسلة.
fun main(args: Array<String>) { val a = 5 val b = 6 val myString = """ |${if (a > b) a else b} """ println("العدد الأكبر هو: ${myString.trimMargin()}") }
عند تشغيل هذا البرنامج، الناتج هو:
العدد الأكبر هو: 6
بما أن القيم الثابتة في Kotlin تُنفذ كحالات من فئة String، يمكنك استخدام عدة طرق وخصائص من هذه الفئة.
خصائص length - تعود طول سلسلة الرموز.
دالة compareTo - مقارنة هذا السلسلة (الرمز) مع الرمز المحدد. إذا كان الرمز يساوي الرمز المحدد، تعود 0.
دالة get - تعود الرمز في الموضع المحدد. يمكنك استخدام عميل الفحص بدلاً من دالة get، لأن عميل الفحص يُستدعى في الخلفية دالة get.
دالة plus - تعود سلسلة جديدة، يتم الحصول عليها عن طريق ربط السلسلة مع السلسلة التي يتم تمريرها إلى هذه الدالة. يمكنك استخدام عميل + بدلاً من دالة plus، لأن عميل + يُستدعى في الخلفية دالة plus.
دالة subSequence - تعود سلسلة جديدة من الرموز من بدء إلى نهاية معينة.
fun main(args: Array<String>) { val s1 = "Hey there!" val s2 = "Hey there!" var result: String println("طول السلسلة s1 هو ${s1.length}.") result = if (s1.compareTo(s2) == 0) "متماثلة" else "غير متماثلة" println("السلسلة s1 و s2 هي ${result}.") // ${s1.get(2)} يساوي ${s1[2]} println("الرمز الثالث هو ${s1.get(2)}.") result = s1.plus(" How are you?") // result = s1 + " How are you?" println("result = $result") println("الجزء الفرعي هو "${s1.subSequence(4, 7)}") }
عند تشغيل البرنامج، الناتج هو:
طول الصفحة s1 هو 10. الصفحة s1 و s2 متساوية. الحرف الثالث هو y. result = Hey there! How are you? الجزء الفرعي هو "the"