今回はJuliaの文字列とその操作を扱います🐜
開発環境
開発環境は以下の通りです。
項目 | 内容 |
---|---|
OS | Windows 10 Home 64bit |
Julia | 1.6.3 |
Cmder | 1.3.14 |
※Cmderは必須ではありません
解説
ここでは、文字列の「連結」、「抽出」、「長さの取得」について、スクリプトを見ながら簡単に解説します。
以下を.jlファイルとしてコピペして、動かしながら確認してください。
<スクリプト例>
function main() # 文字列の連結 msg = "Hel" * "lo" println(msg) msg = string(msg, " world!") println(msg) println("-----") # 文字列の抽出 println(msg[1]) # msg[begin]と等価 println(msg[end]) # msg[-1]はエラー println(msg[1:5]) println(msg[7:2:12]) println("-----") # 文字列の長さ取得 len = length(msg) println(len) println(msg[begin:len]) # msg[1:end]と等価 end if abspath(PROGRAM_FILE) == @__FILE__ main() end
<出力結果>
C:\ari23\dev\julia λ julia mojiretsu.jl Hello Hello world! ----- H ! Hello wrd ----- 12 Hello world!
文字列の連結
Juliaでは、文字列を連結するときには演算子*
を使います。+
ではないので注意しましょう。
もしくはstring()
を使ってもよいです。
# 文字列の連結 msg = "Hel" * "lo" println(msg) msg = string(msg, " world!") println(msg)
文字列の抽出
まずJuliaでは、インデックスは1から始まります。0始まりでないことに注意してください。
抽出の際は、対象の文字列または変数のあとに、インデックス番号を、[
と]
を使って、
[
インデックス番号]
と書きます。
なお、インデックスの最初をbegin
で、最後をend
で指定することが可能です。
文字列から文字列を抽出する際は、抜き出したい範囲のインデックス番号の開始端と終了端を、:
を使って、
[
開始端:
終了端]
と書きます。
さらに、抽出するインデックスの増加数を1ではなく任意の値に指定する際には、
[
開始端:
増加量:
終了端]
と書きます。
# 文字列の抽出 println(msg[1]) # msg[begin]と等価 println(msg[end]) # msg[-1]はエラー println(msg[1:5]) println(msg[7:2:12])
文字列の長さの取得
文字列の長さを取得するには、length()
を使います。引数に取得したい文字列や変数を入れます。
# 文字列の長さ取得 len = length(msg) println(len) println(msg[begin:len]) # msg[1:end]と等価
問題|文字列の逆順
文字列を逆順、つまりmsg = "Hello world!"
としたら、!dlrow olleH
というように出力してください。
ただし、1文字ずつ出力したり、変数に格納し直すのは禁止です。
回答はこちら。
おわりに
Juliaの文字列操作を簡単にまとめました。
上記以外にも文字列の置換や検索など、できることはたくさんあるので、ぜひ自分で調べてみてください。
以上、参考になれば幸いです(^^)
次はこちら。
参考文献
参考文献は以下の通りです。
Julia Documentation
Julia公式のドキュメントです。英語ですが、とても丁寧に書かれていて、疑問はだいたい解消されるのではと思います。読み応えも十分。1から始めるJuliaプログラミング
公式ドキュメントの分量があまりに多くて、もう少しまとまったものが欲しいと思って購入しました。基本から応用まで幅広くカバーされつつ、量も丁度良いです。