2013-09-01 32 views
8

Google Go言語の1つの文字列を、それに含まれる文字列の配列にスライスするにはどうすればよいですか?文字列を文字列にスライス

たとえば、文字列 "abc"を配列 "a"、 "b"、 "c"に変換します。

+1

私はまだ試しています –

答えて

12

例えば

package main 

import "fmt" 

func main() { 
     s := "Hello, 世界" 
     for i, r := range s { 
       fmt.Printf("i%d r %c\n", i, r) 
     } 
     fmt.Println("----") 
     a := []rune(s) 
     for i, r := range a { 
       fmt.Printf("i%d r %c\n", i, r) 
     } 
} 

Playground


、ルーンに conversionを使用します

出力:リンクから

i0 r H 
i1 r e 
i2 r l 
i3 r l 
i4 r o 
i5 r , 
i6 r 
i7 r 世 
i10 r 界 
---- 
i0 r H 
i1 r e 
i2 r l 
i3 r l 
i4 r o 
i5 r , 
i6 r 
i7 r 世 
i8 r 界 

ルーンタイプのスライスに文字列型の値を変換文字列の個々のUnicodeコードポイントを含むスライスを生じます。文字列が空の場合、結果は[]ルーン(nil)になります。

1

私はSplitは、あなたが探しているものだと思う:

func Split(s, sep string) []string 

sepが空stringある場合、それは単一の文字に文字列を分割します:すべてのサブストリングに

スプリットスライス秒sepで区切られ、それらの区切り文字の間に部分文字列のスライスを返します。 sepが空の場合、分割は各UTF-8シーケンスの後で分割されます。これは、SplitNと等価で、カウントが-1です。その上

+1

感謝@insertusernamehere、作品 –

0

最も簡単な方法は分割することです。

var userString = "some string to split" 

newArr:= strings.Split(userString, "")  // split on each char 

fmt.Println(newArr[2])      // will print "m" 
関連する問題