LoginSignup
0
1

More than 5 years have passed since last update.

Mac で Julia #7 Strings

Last updated at Posted at 2018-08-27

前回に引き続きJuliaについてです。

ドキュメントに沿って試していきます。

よく使うのを試します。

length

julia> Base.length("abcdefg")
7

julia> Base.length("日本語")
3

julia> length("日本語")
3

Baseモジュールのメソッドです。普通ですかね。

Concatenate

julia> "こんにちは" * "日本"
"こんにちは日本"

julia> "こんにちは" + "日本"
ERROR: MethodError: no method matching +(::String, ::String)
Closest candidates are:
  +(::Any, ::Any, ::Any, ::Any...) at operators.jl:502
Stacktrace:
 [1] top-level scope at none:0

julia> "こんにちは" . "日本"
ERROR: syntax: space before "." not allowed in ""こんにちは" ."

julia> "こんにちは" * "日本" * 'JJ'
ERROR: syntax: invalid character literal

julia> "こんにちは" * "日本" * 'J'
"こんにちは日本J"

文字列の結合です。.+ではなく*なんですね。

Base.string

julia> string(16,base = 10,pad =4)
"0016"

julia> string(16,base = 8,pad =4)
"0020"

julia> string(16,base = 2,pad =4)
"10000"

16進数とか桁数で文字列にできるってことですかね。

Base.SubString

julia> Base.SubString("abcde", 1, 2)
"ab"

julia> Base.SubString("abcde", 1:2)
"ab"

julia> Base.SubString("abcde", 2:4)
"bcd"

julia> Base.SubString("abcde", 2,2)
"b"

julia> Base.SubString("abcde", 2,4)
"bcd"

julia> Base.SubString("abcde", 3,4)
"cd"

julia> Base.SubString("abcde", 3)
"cde"

インデックスで指定するのと2:4みたいにレンジで指定するのがあるんですね。

正規表現

julia> Base.match(r"[0-9]+"ism ,"abc123ed456")
RegexMatch("123")

julia> a.match
"123"

正規表現も使えます。

Base.lpad

julia> Base.lpad("THANK",1)
"THANK"

julia> Base.lpad("THANK",10)
"     THANK"

右詰(左にスペース)を指定できます。

Base.rpad

julia> Base.rpad("THANK",1)
"THANK"

julia> Base.rpad("THANK",10)
"THANK     "

lpadと逆ですね。

Base.split

julia> a = split("1,2,3,4,5,,,,",",")
9-element Array{SubString{String},1}:
 "1"
 "2"
 "3"
 "4"
 "5"
 ""
 ""
 ""
 ""

julia> length(a)
9

CSVなどでカンマが連続しててもちゃんと分割してくれるようです。

Base.strip

julia> strip("{Hello}\n", ['{', '}', '\n'])
"Hello"

改行文字の除去とかに使えそうです。

Base.startswith

julia> Base.startswith("HelloWorld","World")
false

julia> Base.startswith("HelloWorld","Hello")
true

start*s*withなんですね。

Base.Unicode.uppercase、lowercase

julia> uppercase("Julia")
"JULIA"

julia> lowercase("JuLIA")
"julia"

うむ、普通です。

Base.Unicode.titlecase

julia> titlecase("the JULIA programming language")
"The Julia Programming Language"

julia> titlecase("the JULIA programming language" , strict=false)
"The JULIA Programming Language"

英文にしか使わないかも。

Base.join

julia> join(["apples", "bananas", "pineapples"], ", ", " and ")
"apples, bananas and pineapples"

julia> join(["apples", "bananas", "pineapples"], ", ")
"apples, bananas, pineapples"

julia> join(["apples", "bananas", "pineapples"], ", ","と")
"apples, bananasとpineapples"

3つ目の引数がこれまた英語っぽいでですね。

julia> join(split("1,2,3,4,,,,,",","), " - ")
"1 - 2 - 3 - 4 -  -  -  -  - "

普通に使えます。

Base.chop、chomp

julia> chop("ABC.")
"ABC"

julia> chomp("ABC.")
"ABC."

julia> chomp("ABC\n")
"ABC"

julia> chomp("ABC\r\n")
"ABC"

普通にいい感じです。

Base.Unicode.isnumeric

julia> isnumeric('௰')
true

julia> isnumeric('9')
true

julia> isnumeric('α')
false

julia> isnumeric('❤')
false

わかりますけどー、௰を数値にしちゃうのか...

今日はこの辺で。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1