「Go言語」文字列の指定位置の文字を取得するサンプル

2022年1月20日

形式
文字列変数名[インデックス:長さ]
文字列変数名[:長さ]
文字列変数名[インデックス:]
説明
アルファベットは1文字1バイトですが、日本語はほぼ1文字3バイトです。
マルチバイト文字は、rune型に変換します
使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package main
import (
"fmt"
)
func main() {
const (
cftA string = "studyskill"
cftB string = "テスト太郎"
)
fmt.Println("--------アルファベット文字のアクセス-------------")
fmt.Println(cftA[0:1])
fmt.Println(cftA[:3])
fmt.Println(cftA[3:])
fmt.Println(cftA[3:4])
fmt.Println("--------日本語文字のアクセス--------------")
fmt.Println(cftB[:3])
fmt.Println(cftB[3:6])
fmt.Println(cftB[6:12])
fmt.Println(cftB[6:12])
fmt.Println("---------rune型に変換するアクセス---------")
kk := []rune(cftB)
fmt.Println(string(kk[0:1]))
fmt.Println(string(kk[:3]))
fmt.Println(string(kk[3:]))
fmt.Println(string(kk[3:4]))
}
package main import ( "fmt" ) func main() { const ( cftA string = "studyskill" cftB string = "テスト太郎" ) fmt.Println("--------アルファベット文字のアクセス-------------") fmt.Println(cftA[0:1]) fmt.Println(cftA[:3]) fmt.Println(cftA[3:]) fmt.Println(cftA[3:4]) fmt.Println("--------日本語文字のアクセス--------------") fmt.Println(cftB[:3]) fmt.Println(cftB[3:6]) fmt.Println(cftB[6:12]) fmt.Println(cftB[6:12]) fmt.Println("---------rune型に変換するアクセス---------") kk := []rune(cftB) fmt.Println(string(kk[0:1])) fmt.Println(string(kk[:3])) fmt.Println(string(kk[3:])) fmt.Println(string(kk[3:4])) }
package main

import (
      "fmt"
)

func main() {
      const (
            cftA string = "studyskill"
            cftB string = "テスト太郎"
      )

      fmt.Println("--------アルファベット文字のアクセス-------------")
      fmt.Println(cftA[0:1])
      fmt.Println(cftA[:3])
      fmt.Println(cftA[3:])
      fmt.Println(cftA[3:4])

      fmt.Println("--------日本語文字のアクセス--------------")
      fmt.Println(cftB[:3])
      fmt.Println(cftB[3:6])
      fmt.Println(cftB[6:12])
      fmt.Println(cftB[6:12])

      fmt.Println("---------rune型に変換するアクセス---------")
      kk := []rune(cftB)
      fmt.Println(string(kk[0:1]))
      fmt.Println(string(kk[:3]))
      fmt.Println(string(kk[3:]))
      fmt.Println(string(kk[3:4]))
}

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
C:\study\skill\golang>go run 111.go
--------アルファベット文字のアクセス-------------
s
stu
dyskill
d
--------日本語文字のアクセス--------------
ト太
ト太
---------rune型に変換するアクセス---------
テスト
太郎
C:\study\skill\golang>go run 111.go --------アルファベット文字のアクセス------------- s stu dyskill d --------日本語文字のアクセス-------------- テ ス ト太 ト太 ---------rune型に変換するアクセス--------- テ テスト 太郎 太
C:\study\skill\golang>go run 111.go
--------アルファベット文字のアクセス-------------
s
stu
dyskill
d
--------日本語文字のアクセス--------------
テ
ス
ト太
ト太
---------rune型に変換するアクセス---------
テ
テスト
太郎
太

 

Go言語

Posted by arkgame