寻找一种方法来总结字符串中的所有唯一字符,所以如果字符串是:
!#*@&$&$&@^$*%(%&#
脚本将输出
1 ! found
2 # found
2 * found
2 @ found
4 & found
3 $ found
1 ^ found
等。
我找到了很多操纵字符串的方法,但不是这样。任何帮助都会统治! 感谢
答案 0 :(得分:9)
将字符串分成单独的字符并将它们分组:
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 &