(19)Powershell字符串合並運算符
Powershell 提供了對字符串的合並運算符,連接運算符 -join 將一組字符串連接成單個字符串,子字符串按其在命令中出現的順序添加到生成的字符串中。
連接運算符
Powershell中字符串的連接運算符的語法如下:
參數解釋。
<String[]>
要連接的子字符串數組,即要對哪些子字符串進行連接。
<Delimiter>
指定放在被連接字符串之間的一個或多個字符。默認為空字符串("")。需要注意的是,拆分運算符會在拆分后的字符串中去掉分隔符,而連接運算符會在連接后的字符串中插入指定的分隔符,拆分和合並是兩個相對的運算。
需要注意的是, -Join <String[]> 格式稱為一元連接運算符,它的優先級高於逗號。所以,如果向一元聯接運算符提交逗號分隔的字符串列表,則只有第一個字符串(第一個逗號之前的部分)才會提交給聯接運算符。例如:
但是如果要使用一元聯接運算符,需要請將被連接的字符串用圓括號括起,或將被連接的字符串存儲在變量中,然后提交該變量以進行連接。例如:
除了連接運算符 -join ,在 Powershell算術運算符 中講過,算術運算符 "+" 也具有字符串的連接功能,但是要求是第一個操作數必須是字符串,否會嘗試算術運算加的運算。例如:
在實際運用中,使用 "+" 進行字符串的連接很方便,也很直觀,也是使用頻率很高的字符串連接操作。
下面再舉三個使用 -join 進行字符串連接的例子:
最后舉例說明,利用字符串的分隔運算符 -split 和連接運算符 -join 可以將多行內容轉換到一行,例如:
上面語句中的$a = @''@ 被稱為 here-string ,即會將兩個@ 之間的內容視為一個字符串,這是 Powershell中的特殊運算符。而在實際使用中,xml 文件內容多是多行的,利用此方法可以重新聯接 XML 文件中已保存在 here-string 中的字符串。
總結
Powershell 中利用 -join 關鍵字對字符串進行連接操作,也可以使用算術運算符 "+" 進行字符串的連接,但是前提是第一個操作數必須是字符串。連接和拆分是對立的運算,例如合並可以使用創建指定的時間"+"指定名稱的文件名,而時間和指定名稱可能來自不同的地方。