English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 기본 강의

Golang 제어문

Golang 함수 & 메서드

Golang 구조체

Golang 슬라이스 & 배열

Golang 문자열(String)

Golang 포인터

Golang 인터페이스

Golang 동기

Golang 예외(Error)

Golang 다른杂项

Go 언어 문자열 분할

Go 언어에서는문자열와는 달리 C ++Python 등 다른 언어와는 달리. 이는 너비가 변하는 문자열의 시퀀스입니다. 각 문자는 UTF-8编码은 하나나 많은 바이트로 표현됩니다. Go 문자열에서는 다음 함수를 사용하여 문자열을 슬라이스로 분할할 수 있습니다. 이 함수들은 문자열 패키지 아래에 정의되어 있으며, 따라서 이 함수에 접근하기 위해 문자열 패키지를 프로그램에 가져오아야 합니다:

1.Split:이 함수는 문자열을 주어진 구분자로 분할한 모든 서브 문자열을 포함하는 슬라이스를 반환합니다.

문법:

func Split(str, sep string) []string

여기서, str은 문자열이고, sep는 구분자입니다. str이 주어진 sep를 포함하지 않으면서 sep가 비어 있지 않으면, 길이가1의 슬라이스, 그 중에는 단지 str이 포함됩니다. 또는 sep가 비어 있으면, 각 UTF-8시퀀스를 분할한 후. 또는 str과 sep 모두가 비어 있으면, 빈 슬라이스를 반환합니다.

package main
import (
    "fmt"
    "strings"
)
func main() {
    //문자 생성 및 초기화
    str1 := "온라인 포털에 오신 것을 환영합니다,3codebox"
    str2 := "나의 개의 이름은 돌러"
    str3 := "나는 루도를 플레이하려고 합니다"
    //문자열 표시
    fmt.Println("String 1: ", str1)
    fmt.Println("String 2: ", str2)
    fmt.Println("String 3: ", str3)
    //지정된 문자열을 분할
    //Split() 함수 사용
    res1 1, ",")
    res2 2, "")
    res3 3
    res4 := strings.Split(3codebox, geeks)
    // 결과 표시
    fmt.Println("\nResult 1: ", res1)
    fmt.Println("Result 2: ", res2)
    fmt.Println("Result 3: ", res3)
    fmt.Println("Result 4: ", res4)
   }

출력:

String 1:  온라인 포털에 오신 것을 환영합니다,3codebox
String 2:  나의 개의 이름은 돌러
String 3:  나는 루도를 플레이하려고 합니다
결과 1: [Welcome  to the  online portal  of w3codebox]
결과 2:  [나는 개의 이름은 돌러]
결과 3:  [나는 루도를 플레이하려고 합니다]
결과 4:  []

2. SplitAfter:이 함수는 주어진 구분자의 각 인스턴스 이후 문자열을 모든 서브 문자열로 분할하고, 이러한 서브 문자열을 포함한 슬라이스를 반환합니다。

문법:

func SplitAfter(str, sep string) []string

여기서, str은 문자열이고, sep는 구분자입니다. str이 주어진 sep를 포함하지 않으면서 sep가 비어 있지 않으면, 길이가1의 슬라이스, 그 중에는 단지 str이 포함됩니다. 또는 sep가 비어 있으면, 각 UTF-8시퀀스를 분할한 후. 또는 str과 sep 모두가 비어 있으면, 빈 슬라이스를 반환합니다.

package main
import (
    "fmt"
    "strings"
)
func main() {
    //문자 생성 및 초기화
    str1 := "온라인 포털에 오신 것을 환영합니다,3codebox"
    str2 := "나의 개의 이름은 돌러"
    str3 := "나는 루도를 플레이하려고 합니다"
    //문자열 표시
    fmt.Println("String 1: ", str1)
    fmt.Println("String 2: ", str2)
    fmt.Println("String 3: ", str3)
    //지정된 문자열을 분할
    //SplitAfter() 함수 사용
    res1 := strings.SplitAfter(str1, ",")
    res2 := strings.SplitAfter(str2, "")
    res3 := strings.SplitAfter(str3
    res4 := strings.SplitAfter(3codebox, geeks)
    //결과 표시
    fmt.Println("\nResult 1: ", res1)
    fmt.Println("Result 2: ", res2)
    fmt.Println("Result 3: ", res3)
    fmt.Println("Result 4: ", res4)
}

출력:

String 1:  온라인 포털에 오신 것을 환영합니다,3codebox
String 2:  나의 개의 이름은 돌러
String 3:  나는 루도를 플레이하려고 합니다
결과 1:  [온라인 포털에 오신 것을 환영합니다,]3codebox]
결과 2:  [나는 개의 이름은 돌러]
결과 3:  [나는 루도를 플레이하려고 합니다]

3. SplitAfterN:이 함수는 주어진 구분자의 각 인스턴스 이후 문자열을 모든 서브 문자열로 분할하고, 이러한 서브 문자열을 포함한 슬라이스를 반환합니다。

문법:

func SplitAfterN(str, sep string, m int) []string

여기서str은 문자열이면sep은 구분자이며 m은 반환할 서브 문자열의 개수를 찾기 위해 사용됩니다. 여기서m> 0,그렇다면 최대로m개의 서브 문자열을 반환하며, 마지막 문자열 서브 문자열은 분할되지 않습니다。만약m == 0,이 경우 nil을 반환합니다. 만약m <0،이 경우 모든 서브 문자열을 반환합니다。

package main 
  
import ( 
    "fmt"
    "strings"
) 
  
func main() { 
  
    //문자 생성 및 초기화
    str1 := "온라인 포털에 오신 것을 환영합니다,3codebox"
    str2 := "나의 개의 이름은 돌러"
    str3 := "나는 루도를 플레이하려고 합니다"
  
    //문자열 표시
    fmt.Println("String 1: ", str1) 
    fmt.Println("String 2: ", str2) 
    fmt.Println("String 3: ", str3) 
  
    //지정된 문자열을 분할
    //SplitAfterN() 함수 사용
    res1 := strings.SplitAfterN(str1, ",", 2) 
    res2 := strings.SplitAfterN(str2, "", 4) 
    res3 := strings.SplitAfterN(str3, "!", 1) 
    res4 := strings.SplitAfterN("", "w3codebox, geeks", 3) 
  
    //결과 표시 
    fmt.Println("\nResult 1: ", res1) 
    fmt.Println("Result 2: ", res2) 
    fmt.Println("Result 3: ", res3) 
    fmt.Println("Result 4: ", res4) 
  
}

출력:

String 1:  온라인 포털에 오신 것을 환영합니다,3codebox
String 2:  나의 개의 이름은 돌러
String 3:  나는 루도를 플레이하려고 합니다
결과 1:  [온라인 포털에 오신 것을 환영합니다,3codebox]
결과 2:  [나의 개의 이름은 돌러]
결과 3:  [나는 루도를 플레이하려고 합니다]
결과 4:  []