(19)Powershell字符串合并运算符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(19)Powershell字符串合并运算符相关的知识,希望对你有一定的参考价值。

    Powershell 提供了对字符串的合并运算符,连接运算符 -join 将一组字符串连接成单个字符串,子字符串按其在命令中出现的顺序添加到生成的字符串中。


连接运算符

    Powershell中字符串的连接运算符的语法如下:

-Join <String[]>
<String[]> -Join <Delimiter>

    参数解释。

<String[]>

    要连接的子字符串数组,即要对哪些子字符串进行连接。

<Delimiter>

    指定放在被连接字符串之间的一个或多个字符。默认为空字符串("")。需要注意的是,拆分运算符会在拆分后的字符串中去掉分隔符,而连接运算符会在连接后的字符串中插入指定的分隔符,拆分和合并是两个相对的运算。


    需要注意的是, -Join <String[]> 格式称为一元连接运算符,它的优先级高于逗号。所以,如果向一元联接运算符提交逗号分隔的字符串列表,则只有第一个字符串(第一个逗号之前的部分)才会提交给联接运算符。例如:

PS C:\> -join "a","c","e"
a
c
e

    但是如果要使用一元联接运算符,需要请将被连接的字符串用圆括号括起,或将被连接的字符串存储在变量中,然后提交该变量以进行连接。例如:

PS C:\> -join ("a","b","c")
abc
PS C:\> $x = "a","b","c"
PS C:\> -join $x
abc

     除了连接运算符 -join ,在 Powershell算术运算符 中讲过,算术运算符 "+" 也具有字符串的连接功能,但是要求是第一个操作数必须是字符串,否会尝试算术运算加的运算。例如:

PS C:\> "a"+"b"+"c"
abc

    在实际运用中,使用 "+" 进行字符串的连接很方便,也很直观,也是使用频率很高的字符串连接操作。


    下面再举三个使用 -join 进行字符串连接的例子:

PS C:\> -join ("Windows","Powershell","5.0")
WindowsPowershell5.0
PS C:\> "Windows","Powershell","5.0" -join " "
Windows Powershell 5.0
PS C:\> $x = "Wind","sP","ershell"
PS C:\> $x -join "ow"
WindowsPowershell

    

    最后举例说明,利用字符串的分隔运算符 -split 和连接运算符 -join 可以将多行内容转换到一行,例如:

PS C:\> $a = @‘
>> a
>> b
>> c
>> ‘@
>>
PS C:\> (-split $a) -join " "
a b c

    上面语句中的$a = @‘‘@ 被称为 here-string ,即会将两个@ 之间的内容视为一个字符串,这是 Powershell中的特殊运算符。而在实际使用中,xml 文件内容多是多行的,利用此方法可以重新联接 XML 文件中已保存在 here-string 中的字符串



总结

    Powershell 中利用 -join 关键字对字符串进行连接操作,也可以使用算术运算符 "+" 进行字符串的连接,但是前提是第一个操作数必须是字符串。连接和拆分是对立的运算,例如合并可以使用创建指定的时间"+"指定名称的文件名,而时间和指定名称可能来自不同的地方。

本文出自 “花开花落” 博客,谢绝转载!

以上是关于(19)Powershell字符串合并运算符的主要内容,如果未能解决你的问题,请参考以下文章

PowerShell 中的 JSON 数组

PowerShell初级篇●Powershell条件判断

第 258 场周赛(5867. 反转单词前缀/ 5868. 可互换矩形的组数 / 5869. 两个回文子序列长度的最大乘积(状态压缩) / 5870. 每棵子树内缺失的最小基因值(小大合并))(代码片

(18)Powershell中的字符串拆分运算符

为啥类似 Powershell 的运算符与我的字符串不匹配?

20230420-Python-集合与字典-day9