2017-06-06 179 views
4

怎樣更改:PowerShell的字符串轉換爲數組

$Text = "Apple Pear Peach Banana" 

$Text = @("Apple", "Pear", "Peach", "Banana") 

我打算到陣列喂到foreach循環。提示用戶輸入水果之間的空間(我將使用Read-Host)。那麼我需要將空格分隔的字符串轉換爲foreach循環的數組。

謝謝...

+1

你可以用'split'喜歡:'$文本-split'「' – Hackerman

回答

0

$ Text.Split(」「)

需要更多字符的答案。

+0

說一些有用或教育性約'$ Text.Split( '')'而不是「需要更多的字符來回答」 - 這是因爲需要更多的字符。 –

+0

感謝您的快速回復...但是,我如何添加拆分的單詞到雙引號等數組...有沒有辦法通過讀主機...這樣做,即用戶輸入進入數組?而不是文字和空格? – nixgeek

+0

好吧,我現在看到...我可以在foreach循環中使用$ Text.Split ....即foreach($ F in Text.Split('')) – nixgeek

1

採用分體式()

$text = $text.Split(" ") 
0
$text = $text -split " " 

將工作,前提是不關你的水果名稱是要保持在一起的兩個詞。

+0

讓我們只用一個詞水果就可以做這個練習。 – nixgeek

4

我會用-split regex operator,就像這樣:

$text = -split $text 

你也可以用它直接在foreach()循環聲明:

foreach($fruit in -split $text) 
{ 
    "$fruit is a fruit" 
} 

在一元模式(如上), -splitdefaults to在分隔符\s+上分割(1個或多個空格字符)。

這是很好的,如果用戶不小心進入連續的空格:

PS C:\> $text = Read-Host 'Input fruit names' 
Input fruit names: Apple Pear Peaches Banana 
PS C:\> $text = -split $text 
PS C:\> $text 
Apple 
Pear 
Peaches 
Banana 
+0

哦,這很好..謝謝! – nixgeek