[PS1] String と Char 配列の相互変換など

2015年8月29日

 Powershell で String と Char 配列の相互変換、Char と文字コードの相互変換に苦労したのでメモ。

  • String から Char 配列にする

     ToCharArray メソッドを使う。

    PS> $a = "abcde"
    PS> $b = $a.ToCharArray()
    PS> $b.GetType().Name
    Char[]
    PS> $b
    a
    b
    c
    d
    e
    
  • Char 配列から String にする
    1. -Join を使う

       -join の左辺には何も書かないのがポイント。

      PS> $a = [Char[]](0x41, 0x42, 0x43, 0x44, 0x45)
      PS> $b = -join $a
      PS> $b
      ABCDE
      
    2. New-Object string を使う

       string コンストラクタの第一引数に何も指定しないかのように書くのがポイント。(*1)

      PS> $a = [Char[]](0x41, 0x42, 0x43, 0x44, 0x45)
      PS> $c = New-Object string (,$a)
      PS> $c
      ABCDE
      

      (*1)
       正確には () はコンストラクタの括弧ではないし、 , (カンマ)も演算子でコンストラクタの第一引数を省略しているわけではないです。詳しくは [PS1] Powershell の配列 の 4 項, 5 項 を参照。

  • 文字コードを Char にする

     Char でキャストする

    PS> $a = [Char]0x41
    PS> $a
    A
    
  • Char から文字コードを得る

     整数(Int16 など)でキャストする

    PS> $a = [Char]"A"
    PS> $b = [Int16]$a
    PS> $b
    65
    





タグ:
カテゴリー: OS, PowerShell, Windows

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org