Go에서 문자열을 조작하는 방법은 무엇인가요?
_____A: Go에서 문자열은 `string` 타입으로 표현하며 작은따옴표 대신 큰따옴표를 사용해 만듭니다. 예: `s := "Hello, Go!"`
Q: 문자열의 길이를 어떻게 구하나요?
A: `len()` 함수를 사용해 문자 배열의 바이트 단위 길이를 구합니다. 예: `length := len(s)`
Q: 문자열에서 특정 문자나 부분 문자열을 추출하려면?
A: 슬라이싱 연산을 사용합니다. 예: `sub := s[1:4]` (1부터 3까지 바이트 추출)
Q: Go 문자열은 UTF-8로 인코딩되어 있나요?
A: 네, 기본적으로 UTF-8로 인코딩되어 있으며, 다국어 문자를 제대로 다루려면 `range` 루프나 `utf8` 패키지를 사용해야 합니다.
Q: 문자열 비교는 어떻게 하나요?
A: `==`, `!=` 연산자를 사용해 문자열을 직접 비교할 수 있습니다. 예: `if s1 == s2 { ... }`
Q: 문자열을 연결하는 방법은?
A: `+` 연산자를 사용하거나 `strings.Join()`, `bytes.Buffer` 또는 `strings.Builder`를 사용해 효율적으로 연결할 수 있습니다. 예: `s3 := s1 + s2`
Q: 문자열에서 특정 부분 문자열의 인덱스를 찾으려면?
A: `strings.Index(str, substr)` 함수를 사용합니다. 찾지 못하면 -1을 반환합니다.
Q: 문자열 내에서 부분 문자열을 교체하려면?
A: `strings.Replace()` 함수를 사용합니다. 예: `newStr := strings.Replace(str, "old", "new", n)`, 여기서 `n`은 교체 횟수입니다.
A: `strings.ToLower()` 또는 `strings.ToUpper()`를 사용합니다.
Q: 문자열을 자르거나 다듬으려면?
A: `strings.TrimSpace()`는 양끝의 공백을 제거하고, `strings.Trim()`은 특정 문자를 자릅니다.
Q: 문자열을 배열(슬라이스)로 변환하려면?
A: `[]byte(s)` 또는 `[]rune(s)`로 변환하면 UTF-8 바이트 배열 또는 유니코드 문자 배열을 얻습니다.
Q: 문자열에서 반복되는 값을 합치거나 포맷팅하는 방법은?
A: `fmt.Sprintf()`를 사용해 문자열 포맷팅을 할 수 있습니다. 예: `fmt.Sprintf("Name: %s, Age: %d", name, age)`
Q: Go에서 문자열은 변경 가능한가요?
A: 아니요, 문자열은 불변(immutable) 타입입니다. 수정하려면 바이트 배열이나 문자열 빌더로 변환 후 작업해야 합니다.
Q: 문자열을 반복하려면 어떻게 하나요?
A: `for _, r := range s { ... }` 형태로 사용해 유니코드 문자 단위로 순회합니다.
Q: 문자열 검색, 조작을 위한 주요 패키지는?
A: `strings`, `unicode/utf8`, `fmt` 등이 있습니다.
---
이처럼 Go에서 문자열은 불변의 UTF-8 바이트 시퀀스로 표현되며, 내장 함수 및 표준 라이브러리를 활용해 다양한 조작이 가능합니다.
작성자:
정예진 [비회원]
| 작성일자: 1년 전
2024-09-19 01:50:27
조회수: 137 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 137 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.