티스토리 뷰

| 문자열 자르기

-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