Satrli massivlar
Massiv elementi sifatida boshqa tiplar bo’lgani kabi satrlar ham xizmat qilishi mumkin. Quyidagi misolda bu yaqqol ko’rinadi
using System;
internal class StringArrays
{
private static void Main()
{
string[] str = { "Bu", "juda", "oddiy", "matn." };
Console.WriteLine("Boshlang'ich massiv: ");
for (int i = 0; i < str.Length; i++) Console.Write(str[i] + " ");
Console.WriteLine("\n"); // Satrni o’zgartiramiz.
str[1] = "Albatta"; str[3] = "holat!.";
Console.WriteLine("O'zgartirilgan massiv: ");
for (int i = 0; i < str.Length; i++)
Console.Write(str[i] + " ");
}
}
Dastur natijasidan tushunarli bo’ldiki, bunda satrlarning simvollari emas, balki satrning o’zi massiv elementi bo’lib kelmoqda. Ya’ni dastlabi holatda uning 1-elementi “juda” satri bo’lsa, keyingi holatda, unga “albatta” satri ta’minlandi.
Qiziqarli joyi shundaki, string tipli obyektni aslida o’zgaritirish mumkin emas. Demak, bir marta yaratilgan simvollar ketmaketligini o’zgartirish mumkin emas. Lekin ushbu cheklov usuli satrlarni realizatsiya qilishda ko’plab effektlarni bermaydi. Shuning uchun bu holatni bartaraf etish uchun ba’zi bir imtiyozlar berilgan. Agar mavjud satrni o’zgartirish talab etilsa, u holda yangi satr yaratib, uning ustida kerakli o’zgartirishlarni amalga oshirishimiz mumkin. Bu holatda, bir qancha bunday foydalanilmagan satrlar yig’ilib “chiqindi”ga aylanadi, bu vaqtda bu keraksiz satrlarning taqdiridan tashvishlanmasi ham bo’ladi. Biroq, ta’kidlaganimizdek, satrli o’zgaruvchi (ya’ni string tipli obyekt)ga murojaatni o’zgartirish kerak, demak, unga boshqa obyektning manzilini berish mumkin. Lekin string tipli obyektni yaratganimizdan so’ng, uning tarkibi o’zgartirishimiz mumkin emas. O’zgarmas satrni o’zgartirish uchun Substring() metodidan foydalanamiz. Bu metod satr qismini chaqirib, yangi satrni qiymat sifatida qaytaradi. Bu metod asosida o’zgarmas satrdan qancha belgisini qirqib olish kerakligi yotadi. Metodning umumiy ko’rinishi quyidagicha:
string Substring(int boshl_ind, int uzunlik);
Bu yerda boshl_ind – boshlang’ich indeks raqami, uzunlik – nusxa olinadigan belgilar soni. Quyidagi misolda Substring() metodini ishlashini ko’ramiz
using System;
internal class SubStr
{
private static void Main()
{
string orgstr = "C# tilida satrni o'zgartirish"; // satr ostini shakllantirish
string substr = orgstr.Substring(9, 20);
Console.WriteLine("orgstr: " + orgstr);
Console.WriteLine("substr: " + substr);
}
}
Eng so’nggi estalma: Shunga qaramasdan, C# da dasturlashda oddiy o’zgarmas satrlarda na cheklovlar, na ta’qiqlarning bo’lmasligining ham, ba’zida satr ko’rinishining o’zgartirish imkoniyatiga ega bo’lishining ham foydali tomonlari bor. Bu maqsad uchun, C# da System.Text nomlar fazosida aniqlanuvchi StringBuilder sinfi mavjud. Ushbu sinf satrli obyektlarni yaratib ularni o’zgartirishga ruxsat beradi. Lekin qoida bo’yicha C# tilida string tipli obyektdan foydalaniladi, StringBuilder sinfidan emas. switch operatorida satrlarni qo’llash string tipli obyektni switch boshqaruv operatorida ham qo’llash mumkin. Bu switch operatorida sonli bo’lmagan tiplarni ham ishlatish mumkin deganidir. Bu orqali murakkab bo’lgan holatlardan osongina chiqib ketish mumkin bo’ladi. Masalan, quyidagi oddiy misolni ko’raylik
using System;
internal class StringSwitch
{
private static void Main()
{
string[] strs = { "bir", "ikki", "uch", "to'rt", " besh" };
foreach (string s in strs)
{
switch (s)
{
case "bir": Console.Write(1); break;
case "ikki": Console.Write(2); break;
case "uch": Console.Write(3); break;
}
}
Console.WriteLine();
}
}
Do'stlaringiz bilan baham: |