224 lines
4.8 KiB
Markdown
224 lines
4.8 KiB
Markdown
|
---
|
||
|
title: Strings
|
||
|
localeTitle: سلاسل
|
||
|
---
|
||
|
# سلاسل
|
||
|
|
||
|
السلسلة هي نوع بيانات أساسي في لغة برمجة. يتم تمثيل `String` بالنوع `String` . سلاسل غير قابلة للتغيير. يحتوي Kotlin على واجهة برمجة تطبيقات غنية للعمل مع السلاسل.
|
||
|
|
||
|
### الاستخدام الأساسي
|
||
|
|
||
|
#### إعلان
|
||
|
|
||
|
`// Explicit type declaration
|
||
|
var firstName : String = "Elon"
|
||
|
|
||
|
// or Implicit type declaration and will still compile
|
||
|
val lastName = "Musk"
|
||
|
`
|
||
|
|
||
|
بالإضافة إلى ذلك ، لاحظ استخدام نوع متغير `val` ، وهنا كيف تتصرف
|
||
|
|
||
|
`firstName = "Mark" // can be changed
|
||
|
lastName = "Zuckerberg" // cannot be changed
|
||
|
lastName = 12 // Error: type mismatch
|
||
|
`
|
||
|
|
||
|
#### سلسلة سلسلة
|
||
|
|
||
|
تظهر في مقتطف الشفرة ، تمامًا مثل جافا ، إلحاق `Int` ستؤدي `String` إلى إخراج `String`
|
||
|
|
||
|
`var str = "abc" + 1
|
||
|
println(str + "def")
|
||
|
`
|
||
|
|
||
|
انتاج:
|
||
|
|
||
|
`abc1def
|
||
|
`
|
||
|
|
||
|
حتى بدون تحويل قيمة `Int` 1 إلى كائن `String` أولاً ، لا يزال الإخراج الناتج عبارة عن `String` .
|
||
|
|
||
|
#### سلسلة مع خطوط متعددة
|
||
|
|
||
|
يمكن للمبرمجين الإعلان عن متغيرات `String` مع أسطر متعددة باستخدام علامات اقتباس ثلاثية بدلاً من علامات الاقتباس المزدوجة
|
||
|
|
||
|
`var str = """
|
||
|
This is line 1
|
||
|
This is line 2
|
||
|
This is line 3
|
||
|
"""
|
||
|
println(str)
|
||
|
`
|
||
|
|
||
|
انتاج:
|
||
|
|
||
|
` This is line 1
|
||
|
This is line 2
|
||
|
This is line 3
|
||
|
`
|
||
|
|
||
|
أو مع `.trimIndent()`
|
||
|
|
||
|
استخدام `trimIndent()` سيساعد بالإضافة إلى توفير تنسيق إخراج نظيف عن طريق إزالة indention الزائد و unrespour كل سطر. افحص مقتطف الشفرة أدناه:
|
||
|
|
||
|
`var str = """
|
||
|
This is line 1
|
||
|
This is line 2
|
||
|
This is line 3
|
||
|
""".trimIndent()
|
||
|
println(str)
|
||
|
`
|
||
|
|
||
|
انتاج:
|
||
|
|
||
|
`This is line 1
|
||
|
This is line 2
|
||
|
This is line 3
|
||
|
`
|
||
|
|
||
|
### الوصول إلى أحرف سلسلة
|
||
|
|
||
|
#### مؤشر الوصول
|
||
|
|
||
|
يمكن للمبرمجين الوصول إلى العناصر (الأحرف) لسلسلة باستخدام معامل الوصول إلى الفهرس:
|
||
|
|
||
|
`var str = "Example"
|
||
|
println(str[2])
|
||
|
`
|
||
|
|
||
|
انتاج:
|
||
|
|
||
|
`a
|
||
|
`
|
||
|
|
||
|
إنه مثل الوصول إلى عنصر من صفيف ، تحصل على:
|
||
|
|
||
|
`var str = "Example"
|
||
|
println(str[9]) // Error: index out of bounds
|
||
|
`
|
||
|
|
||
|
#### تكرار عبر سلسلة
|
||
|
|
||
|
عناصر السلسلة هي أحرف يمكن الوصول إليها بواسطة عملية الفهرسة: `s[i]` .
|
||
|
|
||
|
`var str = "Example"
|
||
|
for (c in str) {
|
||
|
println(c)
|
||
|
}
|
||
|
`
|
||
|
|
||
|
انتاج:
|
||
|
|
||
|
`E
|
||
|
x
|
||
|
a
|
||
|
m
|
||
|
p
|
||
|
l
|
||
|
e
|
||
|
`
|
||
|
|
||
|
### ثبات سلسلة
|
||
|
|
||
|
تمامًا مثل جافا ، لا يمكنك تغيير العناصر الفردية `String`
|
||
|
|
||
|
`var str = "Example"
|
||
|
str[2] = "b" // Error
|
||
|
`
|
||
|
|
||
|
#### إعادة تعيين قيم السلسلة
|
||
|
|
||
|
`var str = "Example"
|
||
|
println(str)
|
||
|
str = "Example was changed"
|
||
|
println(str)
|
||
|
`
|
||
|
|
||
|
انتاج:
|
||
|
|
||
|
`Example
|
||
|
Example was changed
|
||
|
`
|
||
|
|
||
|
### خصائص سلسلة
|
||
|
|
||
|
#### تحديد طول سلسلة
|
||
|
|
||
|
`var str = "Example"
|
||
|
println(str.length)
|
||
|
`
|
||
|
|
||
|
انتاج:
|
||
|
|
||
|
`7
|
||
|
`
|
||
|
|
||
|
### وظائف سلسلة
|
||
|
|
||
|
هذه بعض وظائف `String` الشائعة المتوفرة من إصدار Kotlin الحالي
|
||
|
|
||
|
### قارن ب
|
||
|
|
||
|
يقارن هذا الكائن بالعنصر المحدد للترتيب. يتم إرجاع الصفر إذا كان هذا الكائن مساويًا للكائن الآخر المحدد ، أو رقم سالب إذا كان أقل من رقم آخر ، أو رقم موجب إذا كان أكبر من الآخر.
|
||
|
|
||
|
`var str = "Example"
|
||
|
var str2 = "Example123"
|
||
|
var str3 = "Example12345"
|
||
|
println(str.compareTo(str2))
|
||
|
println(str.compareTo(str3))
|
||
|
println(str3.compareTo(str))
|
||
|
println(str.compareTo("Example"))
|
||
|
`
|
||
|
|
||
|
انتاج:
|
||
|
|
||
|
`-3
|
||
|
-5
|
||
|
5
|
||
|
0 # Equal
|
||
|
`
|
||
|
|
||
|
### يساوي
|
||
|
|
||
|
يشير إلى ما إذا كان كائن `String` يساوي تمامًا كائن `String` آخر
|
||
|
|
||
|
`var str = "Example"
|
||
|
var str2 = "Example2"
|
||
|
println(str.equals("Example"))
|
||
|
println(str2.equals("Example"))
|
||
|
`
|
||
|
|
||
|
انتاج:
|
||
|
|
||
|
`true
|
||
|
false
|
||
|
`
|
||
|
|
||
|
### احصل على
|
||
|
|
||
|
إرجاع الحرف في الفهرس المحدد في تسلسل الأحرف هذا.
|
||
|
|
||
|
"" كوتلن var str = "مثال" println (str.get (3))
|
||
|
|
||
|
`Output:
|
||
|
`
|
||
|
|
||
|
الصدف م
|
||
|
|
||
|
`### toString
|
||
|
|
||
|
Returns a string representation of the object.
|
||
|
`
|
||
|
|
||
|
kotlin println (9. toString () + 10) println (9 + 10)
|
||
|
|
||
|
`Output:
|
||
|
`
|
||
|
|
||
|
الصدف "910" 19 \`\` \`
|
||
|
|
||
|
#### مصادر
|
||
|
|
||
|
* [Kotlin Basic Types](https://kotlinlang.org/docs/reference/basic-types.html)
|
||
|
* [مرجع سلسلة Kotlin](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
|