- [golang]Golang 문자열 연산과 결합 목차
| 문자열 자르기
-go언어에서는 문자열 자르기를 " : " 기준으로 자른다.
-":"를 명시하지 않고 일단 index 번호를 적는 경우 아스키 코드값이 출력된다.
-":" 앞뒤로 index 번호를 하나 씩 적은 경우 아래와 같이 사용한다.
ex)
str1[3:] -> 시작 index : 3 부터 시작.
str1[:3] -> 시작 index : 0 부터 시작, 3-1 = 2 번째 index에서 종료
문법
문자열[시작index, 마지막 index-1]
예시
var str1 string = "golang"
// ":" 를 이용하여 splice 처리를 하면 문자열을 갖고온다.
// index 번호만 입력하면 해당하는 index의 코드값인 정수형 값을 가져온다.
fmt.Println("ex1 : ", str1[0:2], str1[0]) // go, 123
fmt.Println("ex2 : ", str1[3:]) // ang
fmt.Println("ex3 : ", str1[:4]) //gola
| 문자열 비교
예시
str2 := "Golang";
str3 := "World";
//ASCII code 문자열 비교
fmt.Println("ex4 : ", str2 > str3); // false
fmt.Println("ex5 : ", str2 < str3); //true
| 문자열 결합
- 문자열 결합에서는 일반 연산(+) 과 Join 연산으로 구분되어집니다.
- 보통 퍼포먼스의 효과를 누리기 위해 Join을 사용한다고 하는데 일반 연산을 사용해도 큰 이슈 사항은 없는 거 같다.
하지만 실무에서
for문으로 문자열 결합을 100000번 이상 결합하는 이슈가 생기면 ?
그때는 바로 append OR Join을 활용하여 문자열 결합을 해주는 것이 성능상 확실한 퍼포먼스를 발휘할 수 있다.
append와 Join을 활용한 예시를 살펴보자.
먼저 기본적으로 append와 Join은 stirngs를 import해와서 사용합니다.
예시
package main
import (
"fmt"
"strings"
)
func main() {
str1 := "ㅋㅋㅋ"
strSet := []string{}
//append를 활용한 문자열 결합
strSet = append(strSet, str1)
strSet = append(strSet, str1)
fmt.Println(strSet)
//Join을 활용한 문자열 결합 두 번째 매개변수는 문자열 결합 시 구분지어주는 매개변수이다.
fmt.Println("join 문자열 결합 결과 : ", strings.Join(strSet, "-"))
//결과 ㅋㅋㅋ-ㅋㅋㅋ
}
그래서 결론은 그냥 Join을 처음부터 사용하여 성능에 이슈가 없도록 대응하는 게 맞다.
'golang' 카테고리의 다른 글
[golang]슬라이스(slice)란? (0) | 2021.07.04 |
---|---|
[golang]Golang 배열(Array) 다루기 (0) | 2021.07.04 |
[golang]Go언어 문자열 (0) | 2021.07.02 |
[golang]문법 정리 (0) | 2021.07.01 |
[golang]Go언어 반복문(for문) (0) | 2021.07.01 |