2017-06-06 691 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