簡體   English   中英

如何從PowerShell數組中刪除空格?

[英]How can I remove spaces from this PowerShell array?

我正在嘗試從Powershell中獲取所有ASCII數字和字母,以便稍后用作鍵。

到目前為止,我的代碼如下所示:

[char[]] $keyArray = @()
for($i = 65;$i -le 122;$i++) 
{
    if($i -lt 91 -or $i -gt 96)  
    {
        $keyArray += [char]$i
    }  
}
for($i = 0; $i -le 9; $i++)
{
    $keyArray += ("$i")
}

Write-Host [string]$keyArray

但是,當我將其寫出時(最后一行),我得到以下內容,每個字符之間都有空格:

ABCDEFGHIJKLMNOPQRSTU VWXYZ abcdefghijklmnopqrstu vwxyz 0 1 2 3 4 5 6 7 8 9

如何刪除這些空格?

您可以使用-join運算符來-join數組元素。 該運算符的二進制形式允許您指定自定義分隔符:

-join $keyArray
$keyArray -join $separator

如果確實有字符數組,則可以調用String構造函數:

New-Object String (,$keyArray)
[String]::new($keyArray) #PS v5

並且不使用數組加法。 它緩慢且不必要。 數組運算符@()在大多數情況下足夠強大:

$keyArray = [char[]] @(
    for($i = 65;$i -le 122;$i++)
    {
        if($i -lt 91 -or $i -gt 96)
        {
            $i
        }
    }
    for($i = 0; $i -le 9; $i++)
    {
        "$i"
    }
)

通過使用PowerShell范圍運算符,可以簡化代碼:

$keyArray = [char[]] @(
    'A'[0]..'Z'[0]
    'a'[0]..'z'[0]
    '0'[0]..'9'[0]
)

使用內置的輸出字段分隔$keyArray ,如下所示(一行,使用分號分隔,並且必須將$keyArray[string]才能起作用):

$OFS = '';[string]$keyArray

參考

如果您希望每行一個字符:

Write-Host ($keyArray | out-string)

如果要將所有字符放在一行上:

Write-Host ($keyArray -join '')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM