文字列

Julia では文字列も数値と同じように特別な処理を施さずに代入できる。変数に文字列が 1 つだけ代入されているときと文字列の配列が代入されている時の動作がやや異なっている。

s = "julia"
## "julia"

t = ["julia", "R", "Python"]
## 3-element Array{ASCIIString,1}:
##  "julia"
##  "R"
##  "Python"

s[1]
## 'j'

t[1]
## "julia"

t[1][2]
## 'u'

文字列分割

文字列の分割は split を利用する。1 つ目の引数に文字列を、2 つ目の引数に分割文字を代入して利用する。分割文字は正規表現を利用して指定することもできる。

a = "love can touch us one time"

split(a, "n")
## 3-element Array{SubString{ASCIIString},1}:
##  "love ca"
##  " touch us o"
##  "e time"

split(a, r"a|e|i|o|u")
## 11-element Array{SubString{ASCIIString},1}:
##  "l"
##  "v"
##  " c"
##  "n t"
##  ""
##  "ch "
##  "s "
##  "n"
##  " t"
##  "m"
##  ""

文字列結合

2 つの文字列を繋げる場合は、string 関数または * 演算子を利用する。

p = "At the touch of love"
q = "everyone becomes a poet."

string(string(p, ", "), q)
## "At the touch of love, everyone becomes a poet."

p * ", " * q
## "At the touch of love, everyone becomes a poet."

文字列の配列をつなげて 1 つの文字列にするときは join 関数を利用する。

e = ["There", "is", "always", "light", "behind", "the", "clouds"]
join(e, " ")
## "There is always light behind the clouds"

文字列置換

文字列置換は replace 関数を利用する。正規表現を利用することもできる。

dna = "ACGATTGCTATGCC"
rna = replace(dna, "T", "U")
rna
## "ACGAUUGCUAUGCC"

dna = "CGCGTAAGGCGCTAGCCTACGGTGC"
replace(dna, r"T(A[AG]|GC)", "*")
## "CGCG*GGCGC*CCTACGG*"

References

  • Introducing Julia/Strings and characters. WIKIBOOKS