どうも!リョクちゃです。
今回は、文字列についてあらゆる角度から使い方を学んでいきます。
文字列の操作を理解して、より効率的にPowerShellを使っていけるようになっていきます。
ちなみに前回はこちら
目次
文字列とは……
そもそも文字列とは何でしょう?
調べてみると
文字列(もじれつ)は、単語や文章のような、文字の連なったもの。ストリング (string)、テキスト (text) という場合もある。
要するに、文字が連なったものだそうです。
あ ← 文字列ではなく、文字です。
あい ← 文字ではなく、文字列です。
といった感じですね。
ちなみにプログラミング言語では、
あ ← CharやStringとして扱われます。
あい ← Stringとして扱われます。
と分けて使われることもあります。(CharとString)
PowerShellで文字列を作る
以下のような記述で、文字列を生成し認識されます。
“あいうえお” or ‘あいうえお’
ダブルクォーテーションもしくはシングルクォーテーションで
囲まれたのが文字列として認識されます。
変数に文字列を代入
と書くことで、変数に文字列”あいうえお”を代入することができます。
変数に代入された文字列を表示する
ここで、以下の変数に代入された文字列をWrite-Hostで表示してみます。
Write-Hostコマンドは、Windowsコマンドでいう、echo
プログラミングにおける、print関数と同じ挙動をします。
VB.Netだと、Console.WriteLineなど。
1 2 3 4 5 |
$strA = "Apple" $strB = "Bacon" Write-Host $strA $strB # Apple Bacon |
と表示されるのがわかります。
それでは、「私の好きな食べ物は$strAと$strBです」となるように表示がしたい場合
どのようにすればいいでしょうか?
答えは
formatを使う
PowerShellでは、.NetにおけるString.Formatが使えます。
String.Formatは、以下のように使うことができました。(VB.Netの例です。)
1 2 |
Dim test As String = "太郎" Console.WriteLine(String.Format("{0}は元気です。", test)) |
ちなみにPythonだと
1 2 |
test = "太郎" print("{}は元気です。".format(test)) |
だいたいイメージがつかめたところで、PowerShellではどのように記述されるか?
答えは以下のようになります。
1 2 3 4 5 |
$test = "太郎" Write-Host "{0}は元気です。" -f $test # 変数に代入しておく場合は $test_2 = "{0}は元気です。" -f $test |
文字列に直接変数を入れてしまう
PowerShellでは、文字列に変数を直接代入することができてしまうので、
こちらを使うのも手です。
書き方は
1 2 |
$test = "太郎" Write-Host "${test}は元気です。" |
文字列を生成する、“”もしくは”の中に${}と記述し、{}の中に変数を入れることで
文字列に変数に格納された情報を代入することができてしまいます。
慣れると便利ですね。
Pythonだと
1 2 |
test = "太郎" print(f"{test}は元気です。") |
“”の前にfを付けることで同じようなことができます。
文字列から指定した長さ文字を抜き取る
次は、文字列から情報を抜き出す方法を紹介します。
抜き出すには、SubStringというコマンドを使います。
1 2 3 |
$test = "Test123456" Write-Host $test.SubString(0, 4) # Test |
こんな感じですね。
とりあえず、まずはこのぐらいでしょうか。
まとめ
PowerShellにおける文字列の使い方をあらゆる角度から見ていきました。
それにしても奥が深い文字列、まだまだ使える手法があるので、
学んで共有できたらと思います。
まずは今回紹介した内容でイメージをつかんでもらえたらなと思います。
最後までお読みいただき、ありがとうございます。