English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل Kotlin الأساسي

تحكم في العملية في Kotlin

الوظائف في Kotlin

السلاسل في Kotlin

كotlin موجه للأتمتة (OOP)

كotlin نصوص وقوالب نصوص

في هذا المقال، ستتعلم Kotlin النصوص، قوالب النصوص، وأيضاً بعض الخصائص والوظائف النصية الشائعة.

كotlin نص (النص)

النص هو سلسلة من الحروف. على سبيل المثال، "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
!

النصوص غير قابلة للتغيير في Kotlin

مثل 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:

1. نص مضمن

قد تكون هناك رموز مضمنة في النص المضمن. على سبيل المثال،

val myString = "Hey there!\n"

في هذا السياق،\n هو رمز مضمن، يستخدم لإدراج مسافات سريعة في الموضع المطلوب في النص.

هذه هي قائمة محدثة من الرموز المضمنة التي يدعمها Kotlin:

  • \t - إدراج رمز tab

  • \b - إدراج رمز الـbackspace

  • \n - إدراج رمز النسخة

  • \r - إدراج رمز الرجوع

  • \' - إدراج رمز الـsingle quote

  • \" - إدراج رمز الـdouble quote

  • \\ - إدراج العلامة المائلة

  • \$ - إدراج رمز دولار

2. نص أصلي

يمكن أن يحتوي النص الأصلي على مسافات سريعة (ليست مسافات سريعة) و نص معين. النص الأصلي مقسوم إلى ثلاثة أسهم """. على سبيل المثال،

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() الوظيفة | كحرف نهاية الحد. ولكن، يمكنك تغييره عن طريق إرسال سلسلة جديدة إلى الوظيفة.

مثال: وظيفة trimMargin() مع 参数

fun main(args: Array<String>) {
    val myString = """
    !!! كotlin مثيرة للاهتمام.
    !!! كotlin مدعوم ومطور من JetBrains.
"""
    println(myString.trimMargin("!!! "))
}

عند تشغيل هذا البرنامج، الناتج هو:

كotlin مثيرة للاهتمام.
كotlin مدعوم ومطور من JetBrains.

نموذج 字بري

يحتوي Kotlin على ميزة رائعة تُدعى قوالب السلسلة، تسمح للسلسلة بأن تحتوي على تعبيرات.

تبدأ تعبيرات قوالب السلسلة في 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"