본문 바로가기

Slack 채널 정리

[Go]Snake to Camel

func split(str string) (words []string) {
	repl := strings.NewReplacer("-", " ", "_", " ")
	str = repl.Replace(str)
​
	rex2 := regexp.MustCompile("(\\w+)")
	words = rex2.FindAllString(str, -1)
​
	return
}
​
func ToCamel(str string) (out string) {
	lowerStr := strings.ToLower(str)
	words := split(lowerStr)
	out = words[0]
​
	for _, w := range split(lowerStr)[1:] {
		out += strings.Title(w)
	}
​
	return
}
​
func main() {
	contents, _ := ioutil.ReadFile("test.txt")
	lines := strings.Split(string(contents), "\n")
	out := ""
	for _, line := range lines[:len(lines)-1] {
		for _, w := range strings.Split(line, " ") {
			out += ToCamel(w) + "\n"
		}
	}
​
	ioutil.WriteFile("output.txt", []byte(out), 0644)
}

sql 담긴 파일 읽어서 snake 형식을 Camel 형식으로 바꾼 후 파일에 저장하는 기능을 go로 코딩해보았습니다(여기선 _에 추가로 "-"로 단어 구분하는 경우도 포함시켰습니다) 가볍게 쓸거라 특수문자 들어간 경우 등의 섬세한 처리는 없습니다.