どうも、ちょげ(@chogetarou)です。
文字列(string)の末尾から指定した文字数を削除する方法を紹介します。
方法

文字列(string)の後ろからN文字を削除する方法は、2つあります。
スライス
ひとつは、「スライス」を使う方法です。
具体的な方法としては、文字列の先頭から長さを「-N」(N=削除する文字数)した場所までをスライスします。
文字列の長さは、len()で取得します。
//text=対象の文字列, n=削除する文字数
result := text[0 : len(text)-n]
上記のスライスで、文字列(string)の末尾からN文字を削除した文字列を生成できます。
使用例
package main
import (
"fmt"
)
func main() {
text := "Hello,World"
n := 3 //削除する文字数
result := text[0 : len(text)-n]
fmt.Println(result)
}
出力:
Hello,Wo
string()とスライス
もうひとつは、string()とスライスを使う方法です。
まず、文字列をスライスに変換します。
次に、string()を呼び出します。
string()の引数に、変換したスライスを先頭から文字列の長さを「-N」(N=削除する文字数)した場所までをスライスした結果を指定します。
//text=対象の文字列, n=削除する文字数
slice := []rune(text) //文字列をスライスに変換
result := string(slice[0 : len(slice)-n]) //文字列の後ろからN文字を削除
上記のstring()は、文字列(string)の末尾からN文字を削除した文字列を生成します。
使用例
package main
import (
"fmt"
)
func main() {
text1 := "Hello,World"
text2 := "こんにちは、世界"
n := 3 //取得する文字数
slice1 := []rune(text1)
result1 := string(slice1[0 : len(slice1)-n])
slice2 := []rune(text2)
result2 := string(slice2[0 : len(slice2)-n])
fmt.Println(result1)
fmt.Println(result2)
}
出力:
Hello,Wo
こんにちは
まとめ
文字列(string)の後ろからN文字を削除する方法は、次の2つです。
- スライスを使う方法
result := text[0 : len(text)-n]
- string()とスライスを使う方法
slice := []rune(text)
result := string(slice[0 : len(slice)-n])
コメント