開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Go (プログラミング言語)
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) (Alan A.A. Donovan(著)、Brian W. Kernighan(著)、柴田 芳樹(翻訳)、丸善出版)の第3章(基本データ型)、3.3(文字列)、3.5.4(文字列とバイトスライス)、練習問題3.11の解答を求めてみる。
コード
package main
import (
"bytes"
"fmt"
)
func main() {
intStrs := []string{
"1", "12", "123", "1234", "12345", "123456789", "1234567890",
"1.", ".1", "12.34", "123.45", "1234.567", "123456789.0123456789"}
for _, s := range intStrs {
fmt.Println(comma(s))
}
}
func comma(s string) string {
i := 0
for ; i < len(s); i++ {
if s[i] == '.' {
break
}
}
var buf bytes.Buffer
s1 := s[:i]
n := len(s1)
start := false
for j, c := range s1 {
if !start {
buf.WriteRune(c)
start = true
} else {
if (n-j)%3 == 0 {
fmt.Fprintf(&buf, ",%c", c)
} else {
buf.WriteRune(c)
}
}
}
if i > n {
buf.WriteRune('.')
}
buf.WriteString(s[i:])
return buf.String()
}
入出力結果(cmd(コマンドプロンプト)、Terminal)
C:\Users\...>go run sample11.go 1 12 123 1,234 12,345 123,456,789 1,234,567,890 1. .1 12.34 123.45 1,234.567 123,456,789.0123456789 C:\Users\...>
0 コメント:
コメントを投稿