Golang에서 문자열을 슬라이스로 분할
10384 단어 go
게시물Splitting a String into a Slice in Golang은 Qvault에 처음 등장했습니다.
Go에서 문자열을 얼마나 자주 분할하는지 말할 수 없습니다. 종종 저는 환경 변수에서 쉼표로 구분된 목록을 구문 분석하고 있으며 Go의 표준 라이브러리는 이러한 종류의 조작을 위한 훌륭한 도구를 제공합니다.
Split by commas or other delimiters
Split by delimiters and retain the delimiters
쉼표 또는 기타 구분 기호로 나누기
strings.Split()
Go의 풍부한 표준 라이브러리를 사용하면 문자열을 정말 쉽게 분할할 수 있습니다. Go에서 문자열을 분할해야 하는 시간의 99%는 strings 패키지의 strings.Split() function 을 원할 것입니다.
package main
import (
"fmt"
"strings"
)
func main() {
fruitsString := "apple,banana,orange,pear"
fruits := strings.Split(fruitsString, ",")
fmt.Println(fruits)
// prints ["apple", "banana", "orange", "pear"]
}
strings.SplitN()
strings.SplitN() 함수는 분할할 문자열, 구분 기호 및 슬라이스의 결과 문자열 수의 세 가지 인수를 사용합니다.
솔직히 저는 이 기능을 자주 사용하지 않지만 큰 문서를 작업하고 처음 몇 문장이나 그 줄에 있는 내용에만 관심이 있는 경우 유용할 수 있습니다.
package main
import (
"fmt"
"strings"
)
func main() {
fruitsString := "apple.banana.orange.pear"
fruits := strings.SplitN(fruitsString, ".", 3)
fmt.Println(fruits)
// prints ["apple", "banana", "orange.pear"]
}
구분 기호로 분할하고 구분 기호 유지
strings.SplitAfter()
Split()
, SplitAfter()
와 유사하게 원래 문자열을 분할하지만 각 하위 문자열 끝에 구분 기호를 남겨 둡니다.package main
import (
"fmt"
"strings"
)
func main() {
fruitsString := "apple.banana.orange.pear"
fruits := strings.SplitAfter(fruitsString, ".")
fmt.Println(fruits)
// prints ["apple.", "banana.", "orange.", "pear"]
}
strings.SplitAfterN()
SplitAfterN
는 첫 번째SplitAfter
하위 문자열만 분할한다는 점을 제외하면 N
와 동일한 작업을 수행합니다. 다른 모든 것은 최종 하위 문자열에 유지됩니다.package main
import (
"fmt"
"strings"
)
func main() {
fruitsString := "apple.banana.orange.pear"
fruits := strings.SplitAfterN(fruitsString, ".", 2)
fmt.Println(fruits)
// prints ["apple.", "banana.orange.pear"]
}
공백과 개행으로 분할
strings 패키지는 제공된 구분 기호를 기반으로 문자열을 분리하는 것 이상을 수행할 수 있습니다. strings.Fields() function은 모든 공백에서 분할되고 최종 결과에서 제외됩니다. 예를 들어 탭, 공백 및 줄 바꿈은 모두 공백으로 간주됩니다.
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Printf("Fields are: %q", strings.Fields(`apple
banana orange
pear
`))
// prints ["apple", "banana", "orange", "pear"]
}
정규식을 사용하여 분할
정규식은 문자열을 조작하는 데 널리 사용되는 방법이며 Go의 내장 정규식 엔진이 도움이 될 수 있습니다. 여기서는 실제로
strings
패키지를 사용할 필요조차 없으며 대신 regexp package 을 사용합니다.package main
import (
"fmt"
"regexp"
)
func main() {
s := regexp.MustCompile("[0-9]").Split("apple1banana2orange3pear", -1)
fmt.Println(s)
// prints ["apple", "banana", "orange", "pear"]
}
Gotcha – Go의 문자열은 특별합니다.
Java, C 및 Python과 같은 다른 언어보다 많은 문자열Go treats strings differently로 작업할 때 주의하십시오. Go의 문자열은 바이트의 읽기 전용 조각이며 해당 바이트는 임의적입니다. 무엇이든 될 수 있습니다. Go의 문자열은 유니코드 텍스트, UTF-8 텍스트 또는 기타 인코딩 형식을 유지하는 데 필요하지 않습니다.
읽어 주셔서 감사합니다. 이제 과정을 수강하십시오!
기술 분야의 고임금 직업에 관심이 있으십니까? 실습 코딩 과정을 마친 후 인터뷰를 시작하고 멋지게 통과합니다.
Start coding now
질문?
질문이나 의견이 있으면 트위터에서 나를 팔로우하고 연락하십시오. 기사에서 실수를 한 경우 반드시 let me know 수정하여 수정할 수 있도록 해주세요!
Subscribe 받은 편지함으로 바로 전달되는 더 많은 코딩 기사를 보려면 내 뉴스레터로 보내십시오.
Reference
이 문제에 관하여(Golang에서 문자열을 슬라이스로 분할), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bootdotdev/splitting-a-string-into-a-slice-in-golang-2o4d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)