CodeGym /Kurslar /C# SELF /Sətirlər və mətn: string tipi, sətirlərlə işləmək

Sətirlər və mətn: string tipi, sətirlərlə işləmək

C# SELF
Səviyyə , Dərs
Mövcuddur

1. string tipini daha yaxından öyrənirik

string tipi C#-da ən çox istifadə olunan tiplərdən biridir. Hətta bəlkə də ən çox istifadə olunanıdır. Bu, sadəcə möhtəşəm tipdir, çünki belə dəyişənlərdə mətn saxlamaq olur. Üstəlik, intdouble tiplərindən fərqli olaraq, string tipli obyektlərin bir yığın müxtəlif funksiyaları var və bu funksiyalarla maraqlı şeylər etmək olur.

Bundan əlavə, C#-da bütün obyektlər (bəli, hamısı) string tipinə çevrilə bilər. Yəni, daha dəqiq desək, bütün obyektlər C#-da öz mətn (sətir) təsvirini qaytarır. Biz bu tipə hələ dəfələrlə qayıdacağıq (çox faydalı və maraqlıdır), amma bu gün onun əsasları ilə tanış olacağıq.

string tipli dəyişənlərin yaradılması

string tipi sətirləri (mətnləri) saxlamaq üçün yaradılıb. Koddakı dəyişəni yaratmaq üçün, hansı ki mətn saxlaya biləcək, belə yazırsan:

string ad;
string tipli dəyişənin yaradılması

Burada ad — dəyişənin adıdır.

Nümunələr:

Əmr Təsvir
string name; name adlı string dəyişən yaradılır
string message; message adlı string dəyişən yaradılır
string text; text adlı string dəyişən yaradılır

intdouble tiplərində olduğu kimi, string tipli bir neçə dəyişəni qısa şəkildə də yarada bilərsən:

string ad1, ad2, ad3;
string tipli dəyişənlərin yaradılması

2. string tipli dəyişənlərə dəyər vermək

string tipli dəyişənə dəyər vermək üçün belə yazırsan:

ad = "dəyər";
string tipli dəyişənə dəyər vermək

Və budur, artıq öyrəndiyimiz tiplərdən ilk fərq. string tipinin bütün dəyərləri mətn sətirləridir və mütləq iki dırnaq işarəsi arasında yazılır.

Nümunələr:

Əmr Qeyd
string name = "Anya"; name dəyişəni Anya mətnini saxlayır
string city = "New York"; city dəyişəni New York mətnini saxlayır
string message = "Hello!"; message dəyişəni Hello! mətnini saxlayır

3. string tipli dəyişənlərin ilkinizasiyası

intdouble tiplərində olduğu kimi, string tipli dəyişənləri də yaradanda birbaşa ilkinizasiya edə bilərsən. Əslində, bu, C#-da bütün tiplər üçün keçərlidir. Ona görə də artıq bu barədə danışmayacağıq.

string ad1 = "setir1", ad2 = "setir2";
string tipli dəyişənlərin yaradılması

Dəyişənlərin yaradılması və ilkinizasiyası nümunəsi

string name = "Anya", city = "New York", message = "Hello!";

Yalnız dəyəri olan dəyişənləri dəyişmək olar

C#-kompilyatoru əsəbləşəcək, əgər dəyişəni elan edib ona heç bir dəyər verməsən və istifadə etməyə çalışsan.

Belə kod işləməyəcək:

string name;
Console.WriteLine(name); // name dəyişəni ilkinizasiya olunmayıb. Proqram kompilyasiya olunmayacaq.
int a;
a++; // a dəyişəni ilkinizasiya olunmayıb. Proqram kompilyasiya olunmayacaq.
double x;
double y = x; // x dəyişəni ilkinizasiya olunmayıb. Proqram kompilyasiya olunmayacaq.

4. Konkatenasiya — sətirlərin birləşdirilməsi

C#-da sətirlərlə edə biləcəyin çox maraqlı və asan bir şey var — onları birləşdirmək. Bu əməliyyata konkatenasiya deyilir. Yəni, yadında saxlamaq üçün — Kon-Kote-Nasiya. Amma çox vaxt buna "sətirlərin birləşdirilməsi" və ya sadəcə "sətirlərin toplanması" da deyirlər.

İki sətiri birləşdirmək üçün + işarəsindən istifadə edirsən. Çox asandır:

"dəyər1" + "dəyər2"
İki sətirin konkatenasiyası

Nümunələr:

Əmr Qeyd
string name = "Anya" + "Anya"; name dəyişəni AnyaAnya sətirini saxlayır
string city = "New York" + "Anya"; city dəyişəni New YorkAnya sətirini saxlayır
string message = "Hello! " + "Anya"; message dəyişəni Hello! Anya sətirini saxlayır

Əlbəttə, eyni anda bir neçə sətiri də toplaya bilərsən, həmçinin sətirləri və dəyişənləri də birləşdirə bilərsən.

Nümunələr:

string name = "Anya";                // name dəyişəni "Anya" sətirini saxlayır
string city = "New York";           // city dəyişəni "New York" sətirini saxlayır
string message = "Hello!" + city + name + city; // message dəyişəni "Hello!New YorkAnyaNew York" sətirini saxlayır

5. Boş sətirlər

Sonuncu nümunədə görürsən ki, message dəyişənindəki mətn oxunmur, çünki orada boşluqlar çatışmır. Bir boşluq və ya bir neçə boşluq əlavə etmək üçün sadəcə kodda onları yazırsan və iki dırnaq işarəsi arasında qoyursan. Bu, düşündüyündən də asandır:

" "
Bir boşluq saxlayan sətir

Yeri gəlmişkən, əgər dırnaqlar arasında heç nə qoymasan (sadəcə iki dırnaq işarəsi), bu zaman "boş sətir" alınır:

""
Boş sətir

Bir tərəfdən, o var, amma digər tərəfdən, ekrana çıxanda heç nə çıxmır. Və başqa sətirlərlə birləşdirəndə də heç nə olmur. Sətirlər üçün sıfırın analoqu kimi bir şeydir.

6. Sətirlərdə xüsusi simvolların escape edilməsi

Artıq bilirsən ki, sətirlər iki dırnaq işarəsi ilə əhatə olunur. Bəs sətirin içində dırnaq işarəsi yazmaq lazım olsa necə? Əgər sətirdə dırnaq işarəsi yazsaq, kompilyator onu sətirin sonu kimi qəbul etməyəcək?

Düzdü. Qəbul edəcək. Ona görə də mətnin içində dırnaq işarəsi \" ilə əvəz olunur. Kod belə olacaq:

string quote = "O dedi: \"Salam!\"";
Console.WriteLine(quote); // O dedi: "Salam!"

Əslində, hər şey bir az daha hiyləgərdir. \ simvolu sətirlərin içində xüsusi (idarəedici) simvol sayılır. Onun köməyi ilə müxtəlif "çap olunmayan simvolları" — məsələn, yeni sətrə keçid, tabulyasiya və s. yazmaq olur. Və əgər \ simvolunun özünü yazmaq lazımdırsa, onu 2 dəfə yazırsan.

Ən çox istifadə olunan 4 kombinasiya bunlardır:

Yazılış Məna
\n Yeni sətrə keçid (newline)
\t Tabulyasiya (boşluq)
\\ Əslində \
\" Sətirin içində dırnaq işarəsi

Nümunə:

string multiline = "Setir 1\nSetir 2";
Console.WriteLine(multiline);

Ekrana çıxacaq:

// Setir 1
// Setir 2

7. Sətir interpolasiyası ($-sətirlər)

C# — çox müasir dildir və dəyişənlərin dəyərlərini sətirin içinə rahat və gözəl şəkildə yerləşdirməyə imkan verir — interpolasiya əməliyyatı ilə. Sadəcə dırnaqlardan əvvəl $ işarəsi qoyursan, sətirin içində isə {} mötərizələrindən istifadə edirsən. Bunu artıq bilirsən.

Amma bilmədiyin odur ki, mötərizələrin içində tam ifadələr və hətta funksiyaları da çağırmaq olar! Nümunə:

string name = "Olya";
int birthYear = 1999;

string info = $"Mənim adım {name}, mənim {2025-birthYear} yaşım var.";
Console.WriteLine(info); 	// Mənim adım Olya, mənim 26 yaşım var.

Belə yanaşma oxunaqlılığı artırır və səhvlərin (və mötərizələrin) sayını azaldır. İnterpolasiya haqqında ayrıca mühazirədə daha ətraflı danışacağıq, amma sadə hallarda artıq rahatlıqla istifadə edə bilərsən.

8. Sətirlərin öz funksiyaları

string tipinin öz funksiyaları (metodları) var. Onların sayı çoxdur və proqramçının işini asanlaşdırır. Bu gün onların bəziləri (ən sadələri) ilə tanış olacaqsan. Nümunə:

Funksiya Təsvir Nümunə nəticə
str.Length Sətirin uzunluğu "abc".Length → 3
str.ToUpper() Böyük hərflərə çevir "abc".ToUpper() → "ABC"
str.ToLower() Kiçik hərflərə çevir "ABC".ToLower() → "abc"
str.Trim() Kənarlardakı boşluqları sil " x y ".Trim() → "x y"

Sətir funksiyaları ilə işləmək nümunələri

Bütün bu funksiyalar belə çağırılır: dəyişən.funksiya(...) .

Sətirin uzunluğunu tapmaq:

string name = "Andrey";
int length = name.Length;
Console.WriteLine(length); // 6, çünki 6 hərf

Sətiri böyük və ya kiçik hərflərə çevirmək:

string original = "Salam";
Console.WriteLine(original.ToUpper()); // SALAM
Console.WriteLine(original.ToLower()); // salam

Kənarlardakı boşluqları silmək (klaviaturadan daxil edəndə çox faydalıdır):

string messy = "   hello   ";
Console.WriteLine(messy.Trim()); // "hello"

Hər belə funksiya yeni sətir qaytarır, köhnə sətir isə dəyişmir.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION