가장 빨리 만나는 Go 언어 Unit 9.1 문자열 길이 구하기

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

문자열 사용하기

이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07

문자열 길이 구하기

문자열 변수에 저장된 문자열의 길이를 구할 때는 len 함수를 사용합니다. 여기서 "한글" 문자열의 길이는 2가 아닌 6입니다. "한글"을 UTF-8로 저장하면 0xed, 0x95, 0x9c, 0xea, 0xb8, 0x80이기 때문입니다. "Hello"는 문자열 길이 그대로 5입니다.

var s1 string = "한글"
var s2 string = "Hello"

fmt.Println(len(s1)) // 6: UTF-8 인코딩의 바이트 길이이므로 6
fmt.Println(len(s2)) // 5: 알파벳 5글자이므로 5

한글, 한자, 일본어 등 UTF-8로 저장했을 때 2바이트가 넘는 문자열의 길이를 구하려면 다음과 같이 unicode/utf8 패키지의 RuneCountInString 함수를 사용합니다.

package main

import "fmt"
import "unicode/utf8"

func main() {
	var s1 string = "한글"
	fmt.Println(utf8.RuneCountInString(s1)) // 2: 문자열의 실제 길이를 구함
}

유니코드와 UTF-8에 대한 자세한 내용은 'Unit 45 유니코드와 UTF-8 함수 사용하기'를 참조하기 바랍니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

2015-06-01