Матндаги, бирор қисм матнни бошқа матнга ўзгартириш учун Replace() услубиддан фойдаланилади.
static void Main(string[] args)
{
string s = "Hello, World, Hello";
Console.WriteLine(s.Replace("Hello", "World")); //натижа "World, World, World"
Console.ReadLine();
}
Матндаги белгиларни char типипдаги массивга ўзлаштириш учун ToCharArray() услубидан фойдаланилади.
static void Main(string[] args)
{
string s = "Hello, World";
char[] array = s.ToCharArray(); // Массив элементлари – 'H', 'e', 'l', 'l'… га тенг бўлади.
}
Матндаги кўрсатилган белги ишлатилган жойдан қисм матнларга ажратиб уни массивга ўзлаштириш учун Split() услубидан, массивдаги элементларнбелги қўйилган ҳолда битта матнга йиғиш учун Join() фойдаланилади.
Мисол:
static void Main(string[] args)
{
string s = "Arsenal,Milan,Real Madrid,Barcelona";
string[] array = s.Split(',');
/* вергул қатнашган жойдан қисм қаторлар ажратилади, бунда массив элементлари –
array[0]= "Arsenal"
array[1]= "Milan"
array[2]= "Real Madrid"
array[3]= "Barcelona" га тенг бўлади.*/
}
Юқорида келтириб ўтилган услублардан фойдаланилганда, асосий матн ўзгармайди, балки асосий матндан фойдаланилади холос. Асосий матни ўзгартириш учун StringBuilder синфининг услубларидан фойдаланилади.
Қуйидаги листингларда сатрли катталиклар билан ишлашга мисоллар келтирилган.
Листинг 14.3.1. Шундай матн берилган бўлсинки унда камида 2 та сўз ва ҳар бир сўз орасида камида 2 тадан пробел бор бўлсин!
*1) Берилган матннинг умумий узунлигини аниқланг;
*2) матндаги бошланғич ҳолдаги пробеллар сонини аниқланг;
*3) сўнгра матндаги ҳар бир сўз орасидаги пробелни биттагача қисқартиринг.
*4) матннинг ҳар бир сўзини массивга жойлаштиринг
*5) массивдаги элементлар сонини аниқланг.
* барча натижаларни экранга чиқаринг;
using System;
using System.Text;
namespace stroka1
{
class Program
{
static void Main(string[] args)
{
string matn;
l0:
Console.WriteLine("Shunday matn kiritingki unda kamida 2 so'z va \n har bir so'z orasida kamida 2 tada probel bor bo'lsin!");
matn = Console.ReadLine();
if (String.IsNullOrWhiteSpace(matn))
{
Console.WriteLine("Kiritiluvchi matn faqat bo'sh joy yoki probellardan tashkil topgan bo'lmasligi kerak!");
goto l0;
}
Console.WriteLine();
int joriy_probel = 0;
string yangi_matn=matn;
Console.WriteLine("Matnning uzunligi:{0}", matn.Length);
foreach (char i in matn)
if (i == ' ') joriy_probel++;
while (yangi_matn.IndexOf(" ") != -1)
yangi_matn = yangi_matn.Replace(" ", " ");
string [] massiv = yangi_matn.Split(' ');
Console.WriteLine("Matning joriy holidagi probellar soni:{0}", joriy_probel);
Console.WriteLine("Matnning qisqartirilgan holati:"+yangi_matn);
Console.WriteLine("Matnning qisqartirilgan holati uzunligi:" + yangi_matn.Length);
Console.WriteLine("Matn bo'lib joylashtirilgan massiv elementlari soni:{0}",massiv.Length);
for(int i=0;i{
Console.WriteLine("massiv[{0}]=" + massiv[i], i);
}
Console.ReadKey();
}
}
}
Do'stlaringiz bilan baham: |