unicode
Go 언어 개발에서 문자열 자르기는 빈번하게 수행되는 작업이며, 특히 중국어와 영어가 혼합된 처리를 다룰 때는 인코딩 문제에 특히 주의해야 합니다. 본 문서에서는 Go 언어에서 주로 사용되는 4 가지 문자열 자르기 방법을 체계적으로 정리하고, 코드 예시와 함께 기술적 포인트를 설명합니다.
Unicode 안전 처리 방법
[]rune 변환을 통해 문자 수준의 안전 절단을 구현합니다.
go
func main() {
str := "Hello, 世界!"
runes := []rune(str)
// 문자 수준 안전 절단
sub3 := string(runes[7:9])
fmt.Println("안전 절단 중국어:", sub3) // 출력:世界
}기술 비교
| 방법 | 시간 복잡도 | 메모리 오버헤드 | 적용 시나리오 |
|---|---|---|---|
| 바이트 슬라이스 | O(1) | 낮음 | 순수 ASCII 문자열 |
| []rune 변환 | O(n) | 높음 | 멀티바이트 문자 포함 문자열 |
