Dart Satrlar (String)

Hayotda faqat sonlardan emas, balki belgilar, so’zlar, matnlardan ham foydalanamiz. Dasturlashda ham shunday sonlardan tashqari satrlardan ham foydalaniladi va ular ko’p narsalarni ifodalashda qo’llaniladi. Masalan, insonlarning ism-familiyasi, joy nomlari, sonlarning o’qilishi va hakoza.

Ko’p dasturlash tillarida endilikda matnni satr deb ataladigan ma’lumot turida saqlaydi. Oldin belgilar uchun alohida tur bo’lgan. Satr ham shu asosida yaratildi. Satrlar o’zi aslida qanday ifodalanadi? Ularni belgilar to’plami sifatida ko’riladi kompyuter tomonidan.

void main() {
String site = "UzbekDevs";
print(site);
}
>> UzbekDevs

Satrlar uchun o’zgaruvchi yaratishda maxsus String turidan foydalanish amalga muvofiq yoki var ni ishlatishingiz mumkin.

Bir nechta kompyuterlar bir-biri bilan bog’lab uzatilgan vaqtda qanday ular bu belgilarni taniydi. Agarda ular aniq bir standartda ishlamasa turli xil holatda taniydi va xatoliklar yuzaga keladi. Shu kabi vaziyatlarda standart ishlab chiqilgan bo’lib, bu ASCII (American Standard Code for Information Interchange) ya’ni Axborot almashish uchun Amerika standart kodeksi deyiladi. Har bir kompyuter mana shu asosida ishlaydi belgilar bilan.

ASCII jadvalida jami 128 ta belgi mavjud va ularning har biriga son qiymati biriktirilgan. Kompyuter ikkilik sanoq sistemasida ishlagani bois u barcha belgilarni shu sanoq sistemasida ifodalab oladi. Son qiymati esa mana shu uchun muhim hisoblanadi. Keyin yana zamonaviy standart Unicode ishlab chiqildi. U yanada ko’proq belgilarni qamrab olibgina qolmasdan, balki formatlarga bo’lindi. Har bir davlat alifbosi, kompaniyalar OT, dasturlari farq qilgani bois o’zlariga mos utf formatlarini ishlab chiqishdi. Bu kabi standartlar mavjud bo’lmagan vaqtda foydalanish birmuncha qiyin bo’lgan.

Dart dasturlash tili UTF-16 formatiga asoslangan bo’lib, u barcha belgilar bilan ishlay oladi va bu jihatdan kamchilik sezmaysiz.

UTF – ing, Unicode Transformation Format ya’ni Unicode o’zgartirish formati hisoblanadi. Ular haqida qo’shimcha bilish uchun manzil : unicode.org

Satrlar doimo “” qo’shtirnoq yoki ‘’ birtirnoq ichida yoziladi.

void main() {
String salom = "✋ Salom, UzbekDevs";
print(salom);
}
>> ✋ Salom, UzbekDevs

Belgilarning ASCII jadvalidagi son qiymatini qanday bila olamiz ? Buning uchun 2 xil yechim mavjud birinchisi to’liq satrni yoki satrdagi aynan bitta belgini.

  1. To’liq satr

Bu uchun .codeUnits xususiyati qo’llaniladi va natija ro’yxat shaklida qaytariladi :

void main() {
String salom = "Salom";
print(salom.codeUnits);
}
>> [83, 97, 108, 111, 109]
  1. Aynan bitta belgi

Bunda esa satrdagi belgi o’rnini 1 dan emas, balki 0 dan boshlab hisoblagan holatda beramiz. .codeUnitAt(o’rni) metodini ishlatib. Oldin aytganimiz kabi satr bu belgilar to’plami. Shuning uchun ham undan biz bittasini tanlab olishimiz mumkin.

void main() {
String salom = "Salom";
print(salom.codeUnitAt(0));
}
>> 83

Satrda joylashgan bir belgi xotiradan 1 bayt joyni egallaydi. Albatta bu belgi ASCII jadvalida joylashgan bo’lsa, chunki 1 bayt 8 bitga teng. Har bir bitlar 0 yoki 1 orqali belgilanadi. Unicode turli formatlarga egaligi uchun ulardagi belgilar ham xotiradan turli joyni band qiladi.

Satr belgilar to’plami bo’lgani bois. Biz bu to’plamdagi biror belgiga murojaat qilish uchun uning indeksini ishlatamiz. Quyidagi jadvalga e’tibor bering:

Kodda buni qanday bajara olamiz ?

void main() {
String sayt = "UzbekDevs";
print(sayt[2]);
}
>> b

O’zgaruvchi_nomi[indeks] – tarzida to’rtburchak qavslar ichida yozib ko’rsatiladi. Satrlar, belgilar yoki satr va belgilarni bir-biriga qo’shish uchun + belgisidan foydalana olamiz.

void main() {
String sayt = "UzbekDevs", domen = "uz";
String hosting = sayt + "." + domen;
print(hosting);
}
>> UzbekDevs.uz

Belgilarni indeks orqali murojaat etib qiymatini o’zgartirish imkoni mavjud emas faqat

Satrlarni formatlash

Satrlarni formatlashning eng yaxshi usullaridan biri $ dollar belgisini ishlatish orqali. Bu Php, C# va boshqa bir qancha dasturlash tillaridagi bilan o’xshab ketadi. Bu orqali o’zgaruvchilarni qaysi turda bo’lishidan qat’iy nazar satr ichida foydalanib ketishga imkon yaratadi. Oddiy misolni ko’ryalik birinchi bo’lib,

void main() {
String sayt = "UzbekDevs";
String hosting = "$sayt.uz";
print(hosting);
}
>> UzbekDevs.uz

Satrdan biror belgini olib ishlatishda uni ${} jinagalak qavslar ichida yozish kerak.

void main() {
String hosting = "dartdev.uz";
print("${hosting[8] + hosting[9]}");
}
>> uz

Funksiyalar mavzusi bilan yaxshilab tanishib chiqqaningizda satrlarni formatlashni ularda ham boshqacha tarzda qo’llashni bir ko’rasiz o’zingiz.