String Functions
String Functions (Dart)
-
length: عدد الأحرفmyString.length. -
isEmpty/isNotEmpty: تحقق إذا السلسلة فاضية. -
toLowerCase()/toUpperCase(): تحويل الأحرف. -
trim()/trimLeft()/trimRight(): إزالة الفراغات من الأطراف. -
contains(pattern): يشيك إذا النص فيه substring أو RegExp. -
startsWith(prefix)/endsWith(suffix): للبحث عند البداية أو النهاية. -
substring(start, [end]): يقتطع جزء من النص. -
split(pattern): يحول النص إلىList<String>بقطع. -
replaceAll(from, to)/replaceFirst(from, to): يستبدل أجزاء من النص. -
indexOf(value)/lastIndexOf(value): يعطي موقع أول/آخر ظهور. -
padLeft(width, [padding])/padRight(width, [padding]): يملّأ بالسلاسل. -
toString()/codeUnits/runes: تحويل أو قراءة الـ Unicode. -
الكود اللي كتبته بيستخدم
indexOf('i'), وهي عملية (method) على الـStringاللي بتبحث عن الحرف أو ال-substring وترجع أول موقع له (أو-1لو مش موجود). -
في المثال
name = "Ali", الحرف'i'موجود في الموضع رقم2(بسبب zero-indexing)، فالناتج2.
indexOfExample -
In Dart
String,indexOffinds the first occurrence index of a substring. -
For
"hello", callingindexOf('l')returns2because indexes start at0(h=0,e=1,l=2). -
If the character isn’t present, it returns
-1.
String Properties
- كل
Stringفي Dart عنده خصائص (properties) قبل ما نطقّب عليه وظائف:length: يخبرك عدد الأحرف في النص.isEmpty/isNotEmpty: بيقولك إذا النص فاضي أو لا.codeUnitsوrunes: يعطيك قائمة القيم الرقمية للـ Unicode للنص.
- الفارق بين property و function: property زي
title.lengthما بياخدش ()، بينما function زيtitle.trim()ممكن تعدّل النص أو يعيد نسخة.
لو عايز أشرح الفرق عمليًا ونعمل مثال يطبّق الخصائص دي، قولّي عايز إزاي؟
- صح، كل نوع بيانات في Dart (وكتير من اللغات) عنده خصائص (properties) خصوصًا الأنواع المركبة والنصوص، والخصائص دي بتديك معلومات عن القيمة بدون ما تنفّذ دالة.
- مثال:
Stringفيهlength,isEmpty,codeUnits;Listفيهlength,isEmpty,first,last;Mapفيهkeys,values; حتىintلهbitLength. - في Dart الخصائص تُستخدم بدون
(), أما الدوال (functions/methods) بتجي بين قوسين. - لو عايز نعدّل أو نستعرض خصائص النوع اللي بتشتغل عليه، قولي النوع ونركّز على اللي محتاجه (مثلاً List أو custom class).