我有一个字符串,用代码$CreateDT.Split(" ")
把它分割成了几部分。现在我想以不同的方式操纵两个独立的字符串。如何将它们分开并存储到两个变量中?
我有一个字符串,用代码$CreateDT.Split(" ")
把它分割成了几部分。现在我想以不同的方式操纵两个独立的字符串。如何将它们分开并存储到两个变量中?
像这样吗?
$string = 'FirstPart SecondPart'
$a,$b = $string.split(' ')
$a
$b
"FirstPart SecondPart ThirdPart"
,并且只想要前两个部分,你可以使用 $a,$b = $string.split(' ')[0,1]
。 - Stoinov-split
运算符创建数组。像这样,$myString="Four score and seven years ago"
$arr = $myString -split ' '
$arr # Print output
Four
score
and
seven
years
ago
当你需要某个元素时,使用数组索引来访问它。请注意,索引从零开始。像这样:
当您需要特定的项目时,请使用数组索引来获取它。请注意,索引从零开始。例如,
$arr[2] # 3rd element
and
$arr[4] # 5th element
years
$arr = @($myString.split(' '))
。意思是将字符串 $myString
按照空格分隔成一个数组 $arr
。 - sxc731@sxc731
说:.Split()
总是返回一个数组,所以不需要使用 @(...)
: $arr = $myString.split(' ')
,但请注意更符合 PowerShell 习惯的解决方案 $arr = $myString -split ' '
已经包含在答案中。但请注意,-split
使用正则表达式,并且是不区分大小写的(使用 -csplit
进行区分大小写拆分)。 - mklement0请注意以下两种技术之间的区别:
$Str="This is the<BR />source string<BR />ALL RIGHT"
$Str.Split("<BR />")
This
is
the
(multiple blank lines)
source
string
(multiple blank lines)
ALL
IGHT
$Str -Split("<BR />")
This is the
source string
ALL RIGHT
从这里可以看出string.split()
方法:
而-split
运算符则:
-split
命令需要将正则表达式作为其(第一个)右侧操作数,而 [string]
类型的 .Split()
方法则操作于一个明文字符/字符数组,以及在 .NET Core 中也可以是明文字符串。此外,请注意,在 PowerShell 中正确的语法是 $Str -split '<BR />'
;虽然伪方法语法 $Str -Split("<BR />")
在这种情况下 碰巧地 也有效,但应避免使用。 - mklement0试试这个:
$Object = 'FirstPart SecondPart' | ConvertFrom-String -PropertyNames Val1, Val2
$Object.Val1
$Object.Val2
$val1, $val2 = 'FirstPart SecondPart' -split ' '
。 - mklement0ConvertFrom-String
所有固有的问题足以避免使用它。这尤其适用于基于模板的解析,但即使是基于分隔符的解析也存在缺陷,由于不可避免地应用了类型推断 - 请参见https://dev59.com/x6vka4cB1Zd3GeqPoBsy#50166580。 - mklement0-split
是更优秀的选择:-split 'FirstPart SecondPart'
,最简单的形式 - 没有昂贵的管道和不必要的自定义对象构建。至于管道使用:请关注即将推出的字符串操作 cmdlet。 - mklement0ForEach-Object 操作语句:
$a,$b = 'hi.there' | foreach split .
$a,$b
hi
there
$Inputstring ="Hello World"
$Array =$InputString.ToCharArray()
$Array
输出:
H
e
l
l
o
W
o
r
l
d