为什么使用 ArrayList 打印数字?
Why does using an ArrayList prints numbers?
输入数据:
(00:00) Pedro Del Mar & Beatsole - Pianophoria(原版混音)
https://www.beatport.com/track/pianophoria-original-mix/5970941
[黑洞录音]
03:01 新世界 - Ushio(原创混音)
https://www.beatport.com/track/ushio-original-mix/6021871
[Abora 录音]
PowerShell 代码:
$readData = Get-Content "C:\Users\SomeUser\inputData - Alternate - 2.txt"
$ArrayList = New-Object System.Collections.ArrayList
function removeBrackets([string]$removeBrackets){
if($removeBrackets.Contains(":") -and ($removeBrackets.IndexOf(":") -eq 2)){
$subString = $removeBrackets.Substring(7-1);
$ArrayList.Add($subString)
}
elseif($removeBrackets.Contains(":") -and ($removeBrackets.IndexOf(":") -eq 3)){
$subString = $removeBrackets.Substring(7+1);
$ArrayList.Add($subString)
}
}
for($i=0; $i -le $readData.Length; $i++){
removeBrackets($readData[$i])
}
for($a=0; $a -le $ArrayList.Count; $a++){
Write-Output $ArrayList[$a]
}
输出:
0
1个
Pedro Del Mar & Beatsole - Pianophoria(原创混音)
新世界 - Ushio (Original Mix)
问题:
我创建了一个脚本来过滤掉文本文件中的数据。它从轨道中删除 HTTP 链接和时间。然后它将字符串添加到数组列表
为什么打印 Array List 会产生 0,1
?我该如何防止这种情况发生?
ArrayList.Add
方法总是returns您添加的新项目的索引:
PS > $ArrayList = New-Object System.Collections.ArrayList
PS > $ArrayList.Add('a')
0
PS > $ArrayList.Add('b')
1
PS >
您可以通过强制转换为 [void]
:
来抑制此输出
PS > $ArrayList = New-Object System.Collections.ArrayList
PS > [void]$ArrayList.Add('a')
PS >
或者通过将输出重定向到 $null
:
PS > $ArrayList = New-Object System.Collections.ArrayList
PS > $ArrayList.Add('a') > $null
PS >
ArrayList.Add() returns 添加值的索引。通过重定向到 $null 或转换为 [void]
.
来摆脱这个输出
$ArrayList.Add($subString) > $null
或
[void]$ArrayList.Add($subString)
输入数据:
(00:00) Pedro Del Mar & Beatsole - Pianophoria(原版混音) https://www.beatport.com/track/pianophoria-original-mix/5970941 [黑洞录音] 03:01 新世界 - Ushio(原创混音) https://www.beatport.com/track/ushio-original-mix/6021871 [Abora 录音]
PowerShell 代码:
$readData = Get-Content "C:\Users\SomeUser\inputData - Alternate - 2.txt"
$ArrayList = New-Object System.Collections.ArrayList
function removeBrackets([string]$removeBrackets){
if($removeBrackets.Contains(":") -and ($removeBrackets.IndexOf(":") -eq 2)){
$subString = $removeBrackets.Substring(7-1);
$ArrayList.Add($subString)
}
elseif($removeBrackets.Contains(":") -and ($removeBrackets.IndexOf(":") -eq 3)){
$subString = $removeBrackets.Substring(7+1);
$ArrayList.Add($subString)
}
}
for($i=0; $i -le $readData.Length; $i++){
removeBrackets($readData[$i])
}
for($a=0; $a -le $ArrayList.Count; $a++){
Write-Output $ArrayList[$a]
}
输出:
0 1个 Pedro Del Mar & Beatsole - Pianophoria(原创混音) 新世界 - Ushio (Original Mix)
问题:
我创建了一个脚本来过滤掉文本文件中的数据。它从轨道中删除 HTTP 链接和时间。然后它将字符串添加到数组列表
为什么打印 Array List 会产生 0,1
?我该如何防止这种情况发生?
ArrayList.Add
方法总是returns您添加的新项目的索引:
PS > $ArrayList = New-Object System.Collections.ArrayList
PS > $ArrayList.Add('a')
0
PS > $ArrayList.Add('b')
1
PS >
您可以通过强制转换为 [void]
:
PS > $ArrayList = New-Object System.Collections.ArrayList
PS > [void]$ArrayList.Add('a')
PS >
或者通过将输出重定向到 $null
:
PS > $ArrayList = New-Object System.Collections.ArrayList
PS > $ArrayList.Add('a') > $null
PS >
ArrayList.Add() returns 添加值的索引。通过重定向到 $null 或转换为 [void]
.
$ArrayList.Add($subString) > $null
或
[void]$ArrayList.Add($subString)