「12121211122」という文字列があり、最後の3文字(「122」など)を取得したい場合、Goで可能ですか? string
パッケージを調べましたが、getLastXcharacters
のようなものは見当たりませんでした。
文字列に スライス式 を使用して、最後の3バイトを取得できます。
s := "12121211122"
first3 := s[0:3]
last3 := s[len(s)-3:]
または、Unicodeを使用している場合は、次のようなことができます。
s := []rune("世界世界世界")
first3 := string(s[0:3])
last3 := string(s[len(s)-3:])
Goの文字列、バイト、ルーン文字、文字 および スライストリック を確認します。
答えは、「キャラクター」の意味によって異なります。バイトを意味する場合:
s := "12121211122"
lastByByte := s[len(s)-3:]
Utf-8でエンコードされた文字列でルーン文字を意味する場合、次のようになります。
s := "12121211122"
j := len(s)
for i := 0; i < 3 && j > 0; i++ {
_, size := utf8.DecodeLastRuneInString(s[:j])
j -= size
}
lastByRune := s[j:]
文字列を[]ルーンに変換してルーンスライスを操作することもできますが、これはメモリを割り当てます。