더북(TheBook)

3.3.2 문자열 연산

 

부분 문자열 추출

[] 연산자로 문자열의 일부를 추출할 수 있다.

표 3-12 문자열 추출

s[n:m]

문자열 sn번째 바이트부터 m-1번째 바이트까지 추출

s[n:]

문자열 sn번째 바이트부터 마지막 바이트까지 추출

s[:m]

문자열 s의 처음부터 m-1번째까지 추출

문자열은 UTF-8 인코딩을 사용하므로 문자에 따라 바이트 수가 달라질 수 있다. 인덱스로 부분 문자열을 추출할 때 이 점을 주의해야 한다.

s := "hello"
fmt.Println(s[1:2])     // e
fmt.Println(s[1:])      // ello
fmt.Println(s[:2])      // he
 
s = "안녕하세요"
fmt.Println(s[1:2])     // ?
fmt.Println(s[1:])      // ? ? 녕하세요
fmt.Println(s[:2])      // ?

 

문자열 비교

문자열 두 개에 비교 연산자(==, !=, <, <=, >=, >)를 사용하면 문자열을 바이트 단위로 비교한다.

fmt.Println(s1 == s2) // false
fmt.Println(s1 != s2) // true
fmt.Println(s1 > s2)  // false
fmt.Println(s1 < s2)  // true

 

문자열 조합

+ 연산자나 += 연산자를 사용하여 여러 문자열을 하나로 합칠 수 있다.


text := "Go is an open source programming language" +
    " that makes it easy to build simple, reliable, and efficient software."
text += " Go is expressive, concise, clean, and efficient."
fmt.Println(text)

실행 결과

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. Go is expressive, concise, clean, and efficient.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.