PowerShell String类方法


使用String类命令:

之前已经讨论过,对象方法和类方法的区别了,再回顾一次。String对象衍生自string类

在控制台输入[String]::然后按Tab键会自动智能提示,这些方法就是String类命令。

Get-Member会返回所有string对象的方法,可以通过参数只返回静态方法,也就是string类命令。使用几率最高的自然Format方法,但是因为PowerShell中已经有了大书特书的-F操作符了,Format方法可以秒杀了。但是Join和Contac还是可以聊聊的。

Join()方法曾经在上一部分演示Split()提到过,它可以将一个数组或者列表字符串合以指定分隔符并成一个字符串。例如自定义一个函数,移除多余的白空格。

function RemoveSpace([string]$text) {
$private:array = $text.Split(" ", `
[StringSplitOptions]::RemoveEmptyEntries)
[string]::Join(" ", $array)
}
PS C:\> RemoveSpace("PowerShell   中文博客的网址为   :https://www.pstips.net")
PowerShell 中文博客的网址为 :https://www.pstips.net

Concat()将多个字符串拼接成一个字符串。

Concat()工作起来类似字符串操作符“+”,类似而已,总有区别。

PS C:\> "Hello" + " " + "World!"
Hello World!

区别在于第一个左表达式必选是一个String类型,否则,麻烦来了:

PS C:\> (Get-Date) + "PStips.Net"
无法将“op_Addition”的参数“1”(其值为“PStips.Net”)转换为类型“System.TimeSpan”:“无法将值“PStips.Net”转换为类型“System.TimeSpan”。错误:“字符串未被识别为有效
的 TimeSpan。””
所在位置 行:1 字符: 13
+ (Get-Date) + <<<<  "PStips.Net"
    + CategoryInfo          : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

此时可以使用:

PS C:\> ""+(Get-Date) + "PStips.Net"
06/04/2013 00:54:27PStips.Net

或者:

PS C:\> [string]::Concat((Get-Date),"PStips.Net")
2013/6/4 0:55:00PStips.Net

Text and Regular Expressions

本文链接: https://www.pstips.net/string-class-methods-2.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注