살인!
golang
golang - golang strings, strconv, fmt 패키지로 문자열 처리, 문자열을 숫자로, 숫자를 문자열로...
이 름 : 바다아이
|
조회수 : 9451
짧은 주소 : https://www.bada-ie.com/su/?561591779941
상당히 귀찮은 일중에 하나입니다만 ㅠㅠ
이게 변환 함수마다 리턴값이 한개일 때도 있고 두개일 때도 있어서 더 헷갈려요...
근데 중요합니다. 여기 게시판에서 "문자열" 검색해 보세요.. 이것 말고 하나더 있는데 이거하고 두개 보면서 필요한 대로 쓰세요..
언젠가 정리를 해서 올려 놓아야 하는데... 이 놈의 귀찮니즘이 허락치 않습니다. 잊지 않을 만큼만 그냥 퍼다 놓는게 편해서 ^^;
매번 기억이 안나서 어디에서 썼더라 하며 소스 찾아보곤 하는데 정리해 놓기는 해야 하는데 에구.. 귀찮니즘... -.-;
문자열 처리시 주로 사용하는 패키지 strings 와 strconv
1. 문자열 합치기
func Example_strCat() {
s := “abc”
ps := &s
s+= “def” //단순 문자열 붙이기 에 좋음
//다른 방법 동일한 효과 각각 장점이 따로 있다.
//s = fmt.Sprint(s, “def”) 문자열이 아닌 것들도 이어 붙이기 좋음
//s = fmt.Sprintf(“%def”,s) 형식을 지정해 줄수있다.
//s = strings.Join([]string{s, “def”}, “”) 문자열 슬라이스나 배열일 경우
fmt.Println(s)
fmt.Pirntln(*ps)
}
실행 결과
abcdef
abcdef
2. 문자열을 숫자로
문자열 타입의 숫자를 정수형 타입의 숫자로 변경하고 싶을때
int(‘5’) 해도 결과 값이 우리가 원하는 5가 되는게 아니다.
그래서 사용되는 방법중 하나가 strconv의 함수를 사용하는것이다.
strconvert(string 문자열 변환기)라고 보면될듯
strconv.Atoi() — 문자열을 정수로 변환
strconv.ParseInt() — 64bit 정수 혹은 10진수가 아닌 수를 변환
strconv.ParseFloat() — 실수형일 경우
strconv.Itoa(), strconv.FormatInt() — 숫자를 문자열로 변환
strconv.FormatFloat(0.04796, 'f', -1, 32) - 실수를 문자열로...
예제
var i int
var k int64
var f float64
var s string
var err error
i, err = strconv.Atoi(“350”) // i == 350
k, err = strconv.ParseInt(“cc7fdd”, 16, 32) // k = 13402077
k, err = strconv.ParInt(“0xcc7fdd”, 0 , 32) // k = 13402077
f, err = strconv.ParseFloat(“3.14”, 64) // f == 3.14
s = strconv.Itoa(340) // s == “340”
s = strconv.FormatInt(13402077, 16) // s== “cc7fdd”
strconv 이외의 패키지로 fmt 패키지 함수를 이용할수도 있다.
fmt.Sscanf() — 문자열로 부터 숫자 혹은 다른 형식을 읽기
fmt.Sprint() — 숫자를 문자열로 변경시
예제
var num int
fmt.Sscanf(“57”, “%d”, &num) // num == 57 문자형 숫자를 숫자형 숫자로 변경
var s string
s = fmt.Sprint(3.14) // s == “3.14” 숫자형 숫자를 문자형 숫자로 변경
s = fmt.Sprintf(“%x”, 13402077) //s == “cc7fdd”
출처 : https://medium.com/@sagehoon/disco-very-go-strconv%EC%99%80-fmt-%ED%8C%A8%ED%82%A4%EC%A7%80%EB%A1%9C-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%B2%98%EB%A6%AC-18564c3ac36a#.1080up2j3
|
|