-1

文字列内のすべての一意の文字を合計する方法を探しているため、文字列が次の場合:

!#*@&$&$&@^$*%(%&#

スクリプトは出力します

1 ! found

2 # found

2 * found

2 @ found

4 & found

3 $ found

1 ^ found

等..

文字列を操作する方法はたくさんありましたが、これはありませんでした。どんな助けも支配するでしょう!ありがとう

4

1 に答える 1

10

文字列を個別の文字に分割し、それらをグループ化します。

PS> '!#@&$&$&@^$%(%&#'.ToCharArray() | Group-Object -NoElement | Sort-Object Count -Descending

Count Name
----- ----
    4 &
    3 $
    2 #
    2 @
    2 %
    1 !
    1 ^
    1 (

結果を変数に保存すると、後で配列インデックスを使用して最初の項目 (最も頻繁に使用される文字) を取得できます (@JNK に感謝)。

PS>  $chars = '!#@&$&$&@^$%(%&#'.ToCharArray() | Group-Object ...   
PS>  $chars[0]

Count Name
----- ----
    4 &
于 2012-09-07T16:00:25.053 に答える