Julia言語の文字列

Julia言語で文字列を操作する方法をご紹介します。

リテラル

Julia言語で文字列リテラルを表すには、文字列を2重引用符で囲む。

str = "hello, world"

2重引用符を含む文字列の場合は、文字列を3つの2重引用符で囲む。

str = """Say "hello, world"."""

表示

Juliaで文字列を表示するには、printlnを使用する。

julia> println("hello, World")
hello, world

配列

文字列を格納した変数や文字列リテラルは、配列として使うことができる。他の多くのプログラミング言語では配列の添字は0から始まるが、Juliaでは配列の添字は1から始まる。

julia> println("hello, world"[1])
h

配列の添字は範囲指定することもできる。たとえば2文字目から4文字目までの場合は次のようにする。

julia> println("hello, world"[2:4])
ell

最後の文字

文字列の最後の文字を参照するには、配列の特殊な添字 end を使う。

julia> println("hello, world"[end])
d

結合

Juliaで複数の文字列を結合するには、2通りのやり方がある。

関数で文字列を結合する

string関数は、渡されたすべての引数を連結した文字列を返す。引数に文字列以外の数値などを渡しても、キャスト(型変換)される。

julia> url = string("https:", "//segakuin.com", "/julia")
"https://segakuin.com/julia"

演算子で文字列を結合する

*」は文字列を結合する演算子である。オペランド(被演算子)に文字列以外を指定することはできない。

julia> url = "https:" * "//segakuin.com" * "/julia"
"https://segakuin.com/julia"

*演算子を使うとプログラムコードがすっきりして見やすくなるが、文字列以外は明示的にキャスト(型変換)する必要があることに注意する。

置換

Julia言語で文字列を置き換えるには、replace関数を使う

julia> s = replace("hello, world", "world" => "japan")
"hello, japan"

長さ

Julia言語で文字列の長さを取得するには、length関数を用いる。

julia> l = length("hello, world")
12

繰返し

文字列を繰り返して新たな文字列を作成するには、^ 演算子を使う。

julia> s = "hello" ^ 2
"hellohello"

julia> s = "hello" ^ 3
"hellohellohello"

数値から文字列への変換

数値を文字列に変換するには、Base.string 関数を使う。

julia> s = string(15)
"15"

基数を指定することもできる。

julia> s = string(15, base = 2)
"1111"

julia> s = string(15, base = 16)
"f"

桁数を指定して、0埋め(パディング)することもできる。

julia> s = string(15, pad = 4)
"0015"

julia> s = string(15, base = 2, pad = 8)
"00001111"

SubString

文字列から部分文字列を取り出すには、Base.SubString 関数を使う。

julia> s = SubString("hello, world", 2)
"ello, world"

始点に加えて、終点を指定することもできる。

julia> s = SubString("hello, world", 2, 5)
"ello"

julia> s = SubString("hello, world", 2:5)
"ello"

lpad

指定した文字数になるまで左側(先頭)を空白で埋めるには、Base.lpad 関数を使う。

julia> s = lpad("hello, world", 16)
"    hello, world"

rpad

指定した文字数になるまで右側(末尾)を空白で埋めるには、Base.rpad 関数を使う。

julia> s = rpad("hello, world", 16)
"hello, world    "

reverse

文字列の並びを逆転させるには、Base.reverse 関数を使う。

julia> s = reverse("hello, world")
"dlrow ,olleh"

分割

指定した文字で文字列を分割するには、Base.split 関数を使う。

julia> a = split("hello, world", ",")
2-element Vector{SubString{String}}:
"hello"
" world"

julia> a[1]
"hello"

julia> a[2]
" world"

strip

文字列の左右(先頭と末尾)から不要な文字を取り除くには、Base.strip 関数を使う。

julia> s = strip("  hello, world  ", ' ')
"hello, world"

取り除く文字を複数指定することができる。

julia> s = strip("(hello, world)", ['(', ')'])
"hello, world"

他のプログラミング言語には左右の空白を取り除く trim という関数が用意されていることがあるが、Julia言語には無い。

lstrip

文字列の左(先頭)から不要な文字を取り除くには、Base.lstrip 関数を使う。

julia> s = lstrip("  hello, world  ", ' ')
"hello, world  "

他のプログラミング言語には左側の空白を取り除く ltrim という関数が用意されていることがあるが、Julia言語には無い。

rstrip

文字列の右(末尾)から不要な文字を取り除くには、Base.rstrip 関数を使う。

julia> i = rstrip("20.315%", '%')
"20.315"

他のプログラミング言語には右側の空白を取り除く rtrim という関数が用意されていることがあるが、Julia言語には無い。

参考文献

JuliaLang.org contributors (2021) Julia Documentation