文字列の基本操作
1. エスケープシーケンス
1.1. 基本の規則
エスケープにはスラッシュではなく、バックスラッシュ \ を使います。
例:
name := "你可真是个\"小机灵鬼\""
//在这里直接使用"小机灵鬼"会报错,因为双引号是字符串的标志,所以需要使用转义符来表示引号:\"
1.2. よく使うエスケープ
Go でよく使うものを示します。

2. 書式付きの出力
Println は改行を追加します。 Print は自動では改行しません。
2.1. 基本的な使い方
細かい文字列を連結して出力すると、煩雑になりがちです。

書式付きの出力には Printf を使います。
fmt.Printf("用户名:%s, 年龄:%d,地址:%s, 电话:%s\r\n",username, age, address, mobile )
2.2. 長所と短所
長所:読みやすく保守しやすいこと。
短所:書式処理には実行時のコストがあります。
2.3. さらに詳しい書式
2.3.1. 既定の書式と型

2.3.2. 整数

2.3.3. 文字

2.3.4. 文字列

2.3.5. 浮動小数点数

3. よく使う文字列操作
3.1. 文字列の長さ
何を長さとするかは、データと操作によって異なります。
3.1.1. ASCII の英数字
name := "hello world"
fmt.Println(len(name))
3.1.2. 中国語を含む文字列
name := "hello 世界"
bytes := []byte(name)
fmt.Println(len(bytes))
3.2. 効率的な文字列の連結
3.2.1. + を使う
username := "user" + "name"
3.2.2. 出力時に書式を指定する
fmt.Printf("用户名:%s, 年龄:%d,地址:%s, 电话:%s\r\n",username, age, address, mobile )
3.2.3. strings.Builder を使う
多数の断片から効率よく文字列を組み立てるときに便利です。
var builder strings.Builder
builder.WriteString("hello")
builder.WriteString("world")
result := builder.String()
fmt.Println(result)
3.3. 文字列を比較する
//等于
a := "hello"
b := "hello"
fmt.Println(a == b)
//不等于
a = "hello"
b = "world"
fmt.Println(a != b)
//大于
a = "hello"
b = "world"
fmt.Println(a > b)
//小于
a = "hello"
b = "world"
fmt.Println(a < b)
//大于等于
//小于等于
//……
3.4. strings のよく使う関数
3.4.1. パッケージを読み込む
import {
"fmt"
"strings"
}
3.4.2. よく使う操作
(1) 部分文字列を含むか調べる
strings.Contains("hello world", "world")
(2) 文字列の長さ
name := "hello world"
len(name)
(3) 部分文字列の出現回数
strings.Count("hello world", "l")
(4) 文字列を分割する
//以空格为分隔符进行分割
strings.Split("hello world", " ")
(5) 接頭辞や接尾辞を調べる
//前缀
strings.HasPrefix("hello world", "he")
//后缀
strings.HasSuffix("hello world", "ld")
(6) 部分文字列の位置を探す
//英文
strings.Index("hello world", "lo")
(7) 部分文字列を置換する
//把字符串里的所有l替换成a,替换前2个
//-1表示全部替换
strings.Replace("hello world", "l", "a", 2)
(8) 大文字と小文字を変換する
//全转成小写
strings.ToLower("HELLO WORLD")
//全转成大写
strings.ToUpper("hello world")
(9) 指定した文字を取り除く
//去掉左右两边指定的字符,指定的字符可以是多个,比如空格,#,*等
strings.Trim("#hello #world#", "#")
//得到的结果是:hello #world
//左边的特殊字符
strings.TrimLeft("#hello #world#", "#")
//得到的结果是:hello #world#
//右边的特殊字符
strings.TrimRight("#hello #world#", "#")
//得到的结果是:#hello #world
ほかの関数は、ソースや文書で確認できます。多くの IDE では、関数名から定義へ移動できます。