Sobes.tech
Junior

Hogyan dolgozhatsz szövegekkel a Go nyelvben?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a sztringek nem módosítható byte-sorozatok.

A sztringekkel való munkavégzés fő módszerei:

  1. Létrehozás:

    // Sztring literál
    s1 := "Hello, Go!"
    
    // Byte szeletből
    byteArray := []byte{'H', 'e', 'l', 'l', 'o'}
    s2 := string(byteArray)
    
  2. Összefűzés:

    s3 := "World"
    result := s1 + " " + s3 // A + operátor használata
    

    Nagyobb összefűzésekhez hatékonyabb a strings.Builder használata:

    import "strings"
    
    var sb strings.Builder
    sb.WriteString("Hello")
    sb.WriteString(", ")
    sb.WriteString("World!")
    result2 := sb.String()
    
  3. Hossz:

    • Byte-okban:
      byteLength := len(s1)
      
    • Karakterekben (runák):
      runeLength := utf8.RuneCountInString(s1) // Az "unicode/utf8" import szükséges
      
  4. Hozzáférés karakterekhez (runákhoz) és iterálás: Go-ban a sztringek byte-okból állnak, de a range használatakor dekódolódnak runákra (Unicode kódpontokra).

    import "fmt"
    
    for index, runeValue := range s1 {
        fmt.Printf("Index: %d, Rune: %c, Típus: %T\n", index, runeValue, runeValue)
    }
    

    A közvetlen indexelés byte-ot ad vissza, nem runát:

    b := s1[0] // 'H' byte-ot ad
    
  5. Átalakítás:

    • Byte szeletre:
      byteSlice := []byte(s1)
      
    • Rune szeletre:
      runeSlice := []rune(s1)
      
  6. strings csomag: Sok hasznos funkciót kínál a sztringekkel való munkához:

    • strings.Contains(s, substr): Ellenőrzi, hogy tartalmaz-e egy al-sztringet.
    • strings.HasPrefix(s, prefix): Ellenőrzi, hogy a sztring egy prefix-szel kezdődik-e.
    • strings.HasSuffix(s, suffix): Ellenőrzi, hogy a sztring egy suffix-szel végződik-e.
    • strings.Index(s, substr): Megkeresi az első előfordulását egy al-sztringnek.
    • strings.ReplaceAll(s, old, new): Minden előfordulást helyettesít.
    • strings.Split(s, sep): Sztringet feloszt egy szeparátor mentén.
    • strings.Join(a []string, sep string): Összefűzi a sztringeket egy szeparátorral.
    • strings.ToLower(s): Kisbetűssé alakít.
    • strings.ToUpper(s): Nagybetűssé alakít.
    • strings.TrimSpace(s): Eltávolítja a szóközöket a sztring elejéről és végéről.
  7. fmt csomag: Formázott kiíráshoz és beolvasáshoz.

  8. strconv csomag: Sztringek konvertálása numerikus típusokra és fordítva:

    import "strconv"
    
    i, err := strconv.Atoi("123") // Sztringből int
    s := strconv.Itoa(i) // Intből sztring
    

A sztringek immutabilitása fontos, és azt jelenti, hogy minden olyan művelet, ami úgy tűnik, módosítaná a sztringet (pl. összefűzés vagy Replace), valójában egy új sztringet hoz létre.