String (matn)lar bilan ishlash
Ma'lumotlar turlari mavzusida string
toifasi haqida aytib o'tgan edik, bu qismda shu mavzuga chuqurroq kiramiz.
Info
Belgili ketma-ketlilar matnlar hisoblanadi. Matnlar (string) ASCII
da mavjud barcha belgilarni o'z ichiga oladi.
Matnli (string) toifasi ""
yoki ''
belgilari bilan e'lon qilinadi.
String haqida umumiy nazariy ma'lumot
String
toifasi dasturlashda eng keng tarqalgan ma'lumot turi bo'lib, u harflar, sonlar, belgilar va hatto bo'sh joylar ketma-ketligini ifodalaydi. Deyarli barcha dasturlash tillarida matnlar bilan ishlash uchun string
toifasi mavjud. Quyida stringlar haqida asosiy nazariy ma'lumotlar keltiriladi:
-
O'zgaruvchanlik: Golangda
string
toifasi o'zgarmas (immutable) hisoblanadi, ya'ni bir marta yaratilgan stringni o'zgartirib bo'lmaydi. Har qanday o'zgartirish yangi string yaratadi. -
Kodlash: Golang stringlari UTF-8 kodlash tizimidan foydalanadi, bu esa stringlarni turli xil tillarda va belgilar to'plamida qulay ishlatish imkonini beradi.
-
Indeksatsiya: Stringdagi har bir belgi indeksga ega bo'lib, bu indeks orqali belgilarga murojaat qilish mumkin. Indekslar 0 dan boshlanadi.
-
Bo'sh string: Bo'sh string bu uzunligi 0 bo'lgan stringdir (
""
). Bu dasturda matn mavjud emasligini ifodalash uchun ishlatiladi. -
Operatsiyalar: Stringlar ustida qo'shish, taqqoslash, substring olish, uzunligini aniqlash kabi turli xil operatsiyalarni bajarish mumkin.
-
Xotira ishlatilishi: Har bir string
byte
lar ketma-ketligidan iborat bo'lib, har bir belgi ma'lum miqdordagi xotiradan foydalanadi. UTF-8 kodlash tizimi tufayli ba'zi belgilar bir necha baytni egallashi mumkin.
string
turini e'lon qilishga misol
package main
import "fmt"
func main() {
// Matnni "" ichida e'lon qilish
var matn1 string = "Bu stringning birinchi misoli."
// Matnni '' ichida e'lon qilish
matn2 := 'A' // faqat bitta belgi uchun ishlatiladi
// Matnni chop etish
fmt.Println(matn1)
fmt.Println(matn2)
}
Matn ustida amallar
Golangda matn ustida turli xil amallar bajarish mumkin. Quyida bir nechta asosiy amallar bilan tanishamiz.
1. Uzunlikni aniqlash
len()
funksiyasi yordamida matnning uzunligini aniqlash mumkin.
package main
import "fmt"
func main() {
matn := "Salom, dunyo!"
// Uzunlikni aniqlash
uzunlik := len(matn)
fmt.Println("Matn uzunligi:", uzunlik)
}
2. Matndan belgilarni olish
Matndan indeks bo'yicha belgini olish mumkin. Indeks 0 dan boshlanadi.
package main
import "fmt"
func main() {
matn := "Golang"
// Belgini olish
birinchiBelgi := matn[0]
fmt.Printf("Birinchi belgi: %c\n", birinchiBelgi)
}
3. Matnlarni qo'shish
+
operatori yordamida ikkita matnni birlashtirish mumkin.
package main
import "fmt"
func main() {
matn1 := "Salom, "
matn2 := "Dunyo!"
// Matnlarni qo'shish
birlashtirilgan := matn1 + matn2
fmt.Println(birlashtirilgan)
}
4. Matnlarni taqqoslash
Matnlarni taqqoslash uchun ==
va !=
operatorlaridan foydalaniladi.
package main
import "fmt"
func main() {
matn1 := "Golang"
matn2 := "Python"
// Taqqoslash
fmt.Println(matn1 == matn2) // false
fmt.Println(matn1 != matn2) // true
}
5. Qism matn olish (substring)
Golangda qism matn olish uchun slice ([]
) operatoridan foydalaniladi.
package main
import "fmt"
func main() {
matn := "Salom, Dunyo!"
// Qism matn olish
qism := matn[7:12] // "Dunyo"
fmt.Println(qism)
}
Golang String Functions
- len – String uzunligini olish
- strings.Contains – Stringda substring mavjudligini tekshirish
- strings.Count – Stringda substring qanchalik ko'p uchrashishini hisoblash
- strings.HasPrefix – Stringning boshida substring borligini tekshirish
- strings.HasSuffix – Stringning oxirida substring borligini tekshirish
- strings.Index – Substringning birinchi uchrashuvining indeksini topish
- strings.Join – Stringlarni birlashtirish
- strings.Replace – Stringdagi substringni almashtirish
- strings.Split – Stringni substringlarga ajratish
- strings.ToLower – Stringni kichik harflarga aylantirish
- strings.ToUpper – Stringni katta harflarga aylantirish
- strings.Trim – Stringning bosh va oxiridan bo'sh joylarni olib tashlash
- strings.TrimSpace – Stringning bosh va oxiridan bo'sh joylarni olib tashlash (faqat bo'sh joylar)
- strings.TrimPrefix – Stringning boshidan prefixni olib tashlash
- strings.TrimSuffix – Stringning oxiridan suffixni olib tashlash
- strings.Repeat – Stringni bir necha marta takrorlash
- strings.Fields – Stringni bo'sh joylarga qarab ajratish
- strings.Map – Stringga funktsiyani qo'llash
- strings.ToTitle – Stringni bosh harflar bilan aylantirish
- strings.ContainsAny – Stringda berilgan harflardan biri mavjudligini tekshirish