[玩转系统] 在 PowerShell 中计算字符串中字符的出现次数 [4 种方法]
作者:精品下载站 日期:2024-12-14 05:26:52 浏览:16 分类:玩电脑
在 PowerShell 中计算字符串中字符的出现次数 [4 种方法]
使用 -replace
运算符
要在 PowerShell 中计算字符串中字符的出现次数:
- 使用
-replace
运算符将出现的指定字符替换为空字符串,并将结果存储在临时字符串中。 - 使用
.Length
属性获取原始字符串和临时字符串的长度。 - 从原始字符串中减去临时字符串的长度即可得到字符数。
使用 -replace 运算符:
$string = "my_string"
$character = 'm'
$temp_string = ($string -replace $character,"")
$count = $string.Length - $temp_string.Length
Write-Output "Occurence frequency of '$character' in '$string' is $count"
输出 :
Occurence frequency of 'm' in 'my_string' is 1
PowerShell 中的 -replace 运算符将一个或多个指定的字符或字符串替换为另一字符串。它返回一个新字符串,而不修改原始字符串。它需要两个参数:
- 第一个是我们要替换的值。
- 第二个是我们想要替换第一个的值。
我们还可以使用 -replace 运算符从字符串中删除特定字符,将特定字符替换为空字符串。例如,我们使用此运算符从 string
中删除出现的 character
,方法是用空字符串替换它们。我们将替换操作的结果存储在 temp_string
中。
在 PowerShell 中,.NET Framework 中的 System.String 类表示 Unicode 字符序列。它提供了用于处理字符串的各种方法和属性。例如,其Length
属性返回字符串中的字符数。
.Length
属性与 -replace
运算符结合使用来确定特定字符在字符串中出现的次数。例如,我们使用此属性来计算 string
和 temp_String
中的字符数。 temp_string
包含除character
之外的字符。因此,我们从string
中减去temp_string
的长度,就得到了该字符在string
中出现的频率。
使用 .Split()
方法
要在 PowerShell 中获取字符串中字符的出现频率:
- 使用
.Split()
方法将string
拆分为子字符串数组,并将character
指定为分隔符。 - 使用
.Count
属性获取数组中的元素数量,这将是原始字符串中字符
出现的次数。
使用 .Split() 方法:
$string = "my_string"
$character = 'm'
$count = ($string.Split($character)).count-1
Write-Output "Occurence frequency of '$character' in '$string' is $count"
输出 :
Occurence frequency of 'm' in 'my_string' is 1
System.String 类的 .Split() 方法根据给定的分隔符将字符串拆分为子字符串数组。分隔符是分隔子字符串的一个字符或一组字符。生成的数组将包含原始字符串中的所有子字符串,但不包含分隔符。例如,我们对字符串
应用了.Split()
方法,通过将字符
视为分隔符来分割它。
但是,.Count
属性是 System.Collections.ICollection
接口的一个属性,返回集合中元素的数量。因此,它可以获取数组中元素的数量。例如,我们使用此属性来获取结果数组中的元素数量。
请注意,返回的计数比出现的总数少 1
。这是因为计数返回的是通过拆分不包含分隔符的原始字符串创建的数组中的元素数量。因此,我们从输出中减去 1
以获得准确的出现频率。
使用 .ToCharArray()
方法
要在 PowerShell 中获取字符串中某个字符的出现次数:
- 使用
.ToCharArray()
方法将string
转换为字符数组。 - 使用
Where-Object
cmdlet 仅筛选出数组中与字符
相同的元素。 - 使用
.Count
属性来计算过滤数组中的元素数量。
使用 .ToCharArray() 方法:
$string = "my_string"
$character = 'm'
$count = ($string.ToCharArray() | Where-Object {$_ -eq $character}).count
Write-Output "Occurrence frequency of '$character' in '$string' is $count"
输出 :
Occurrence frequency of 'm' in 'my_string' is 1
System.String
类的 .ToCharArray()
方法将 PowerShell 中的对象转换为一维字符数组。生成的数组包含原始字符串中每个字符的一个元素。我们可以使用此方法对字符串的各个字符执行操作或将字符串作为字符数组进行操作。例如,我们使用此方法将字符串
转换为字符数组。
管道 (|
) 运算符将一个命令或 cmdlet 的输出作为输入传递给另一命令或 cmdlet。我们使用管道运算符来处理 .ToCharArray()
方法的输出。
条件 cmdlet Where-Object
筛选 PowerShell 中的对象集合。我们使用 -eq
运算符过滤了 .ToCharArray()
方法的输出,其中元素等于指定的字符
。
我们在解释使用 .Split()
方法的代码部分时讨论了 .Count
属性。在本节中,我们使用此属性来计算过滤后的数组中的元素数量,这将是原始字符串
中字符
出现的次数。
使用 [regex]::matches()
方法
要计算 PowerShell 中字符串中字符的出现频率,请使用带有 .Count
参数的 [regex]::matches()
方法。强>
使用 matches() 方法:
$string = "my_string"
$character = 'm'
$count = [regex]::matches($string, $character).count
Write-Output "Occurence frequency of '$character' in '$string' is $count"
输出 :
Occurence frequency of 'm' in 'my_string' is 1
在 PowerShell 中,[regex]::matches()
是 System.Text.RegularExpressions.Regex
类的静态方法,用于查找给定表达式中表达式的所有匹配项。输入字符串。
[regex]::matches()
方法采用两个参数:
- 第一个参数是我们要匹配的表达式模式或字符。
- 第二个参数是输入字符串,我们要在其中查找匹配项。
例如,我们使用此方法来搜索字符串
中出现的字符
。在该方法的输出中,我们使用.Count
参数来计算出现频率。
请注意,此方法的效率低于我们之前讨论的其他方法,因为它返回一个 System.Text.RegularExpressions.MatchCollection 对象,其中包含一个 System.Text.RegularExpressions.Match > 找到的每个匹配对象,而其他匹配则使用字符串操作。
这就是如何在 PowerShell 中计算 String 中字符的出现次数。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag