如何在 PowerShell 中將字符串轉換為整數

  1. 使用 [int] 將字串轉換為整數
  2. 使用 [System.Int32] 將字串轉換為整數
  3. 定義變數的資料類型以將字串轉換為整數
  4. 結論
如何在 PowerShell 中將字符串轉換為整數

在 PowerShell 中,知道如何將字串轉換為整數是一項寶貴的技能。這個教程將教你如何在 PowerShell 中將字串轉換為整數。

我們將研究使用 [int][System.Int32] 來執行這種轉換的技巧,讓你可以輕鬆修改你的數據。

使用 [int] 將字串轉換為整數

在 PowerShell 中,我們可以使用 [int] 將字串轉換為整數。這稱為類型轉換或類型轉換。

以下語法是一個簡單的賦值語句,我們將字串轉換為整數並將結果賦值給變數 $integerVariable

語法:

$integerVariable = [int]$stringVariable

參數:

  • $integerVariable:這是一個在轉換後將持有整數值的變數。
  • [int]:這用於將 $stringVariable 的值類型轉換為整數。
  • $stringVariable:這是另一個變數或表達式,包含你想轉換為整數的字串。

讓我們考慮一個變數 $a 如下所示。

$a = 123

變數 $a 的資料類型為 integer

$a.GetType().Name

輸出:

Int32

但當我們將值包裹在 " " 中時,資料類型將變為 string

$b = "123"
$b.GetType().Name

輸出:

String

要將字串($b = "123")的資料類型轉換為整數,我們可以使用 [int] 如下所示。

$b = $b -as [int]
$b.GetType().Name

在上面的代碼中,我們從變數 $b 開始。此時 $b 的當前值和資料類型對我們來說是未知的,但我們想確保它被視為整數。

接下來,$b -as [int],我們使用 -as 運算子進行安全的類型轉換。它會嘗試將 $b 的值轉換為指定的類型 [int]

如果可以轉換,則結果會返回到 $b 中。如果不能,則 $b 仍保持不變。

在下一行中,我們使用 $b.GetType().Name 來確定變數 $b 在類型轉換操作後的資料類型。

現在,讓我們來看看擁有特定值和類型的變數 $b 會發生什麼:

  • 如果 $b 最初包含一個整數(例如,$b = 42),則代碼不會更改其類型,輸出將為 Int32

  • 如果 $b 最初包含一個可以成功轉換為整數的字串(例如,$b = "123"),則代碼會將其類型更改為整數,輸出將為 Int32

  • 如果 $b 最初包含一個無法轉換為整數的字串(例如,$b = "hello"),則代碼不會更改其類型,輸出的將是原始值的類型,在這種情況下是字串,因此輸出將為 String

輸出:

Int32

給定輸出 Int32,這意味著變數 $b 的初始值(在這段代碼片段之前)要麼是一個整數,要麼是一個可以成功轉換為整數的字串。

使用 [System.Int32] 將字串轉換為整數

[System.Int32] 是一種類型轉換形式,用於在 PowerShell 中將字串轉換為整數,這明確告訴 PowerShell 把變數或表達式視為 Int32 資料類型。

在語法中,我們將 $stringValue 中的字串轉換為整數,並將結果存儲在 $intValue 中。這是利用 [System.Int32] 語法來指定所需的資料類型,使 $stringValue 可以進行數字運算。

語法:

$intValue = [System.Int32]$stringValue

在代碼中,我們先將一個名為 $stringValue 的字串變數設置為值 "456"。然後,我們利用 [System.Int32] 將這個字串轉換為整數,並將結果存儲在另一個變數 $intValue 中。

在這次轉換之後,我們通過 $intValue.GetType().Name 查詢變數 $intValue 的資料類型。

輸出:

Int32

輸出告訴我們變數 $intValue 包含一個整數,特別是一個 32 位整數,因為 Int32 是資料類型的名稱。

定義變數的資料類型以將字串轉換為整數

PowerShell 可以自行檢測變數的資料類型。

我們不需要具體指定資料類型並聲明變數。但是,我們可以在變數之前定義資料類型,以便強制類型。

讓我們舉一個例子。

[int]$c = "456"
$c.GetType().Name

在上面的代碼中,我們這樣聲明並初始化變數:[int]$c = "456"。這行代碼告訴 PowerShell 明確地將字串 "456" 轉換為整數,然後將結果存儲在變數 $c 中。

接下來,我們想知道變數 $c 的資料類型,因此我們使用 $c.GetType().Name。這是我們檢查類型轉換是否成功的方式。

輸出:

Int32

上面的輸出為 Int32,表示字串 "456" 已轉換為整數。但是,如果你嘗試將整數資料類型強制為字串值,則會收到錯誤,如下代碼示例所示。

[int]$data = "storage"
$c.GetType().Name

在上面的代碼中,我們首先聲明一個名為 $data 的變數並將字串值 "storage" 賦值給它。下一行 [int]$data 表示強制將字串 "storage" 轉換為整數資料類型的嘗試。

現在,我們將檢查變數 $data 的資料類型,使用 $data.GetType().Name

輸出:

Cannot convert value "storage" to type "System.Int32". Error: "Input string was not in a correct format."
At line:1 char:1
+ [int]$data = "storage"
+ ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
    + FullyQualifiedErrorId : RuntimeException

我們嘗試使用 [int] 將其轉換為整數。但是,由於字串 "storage" 不能轉換為整數,因此 PowerShell 不會更改該變數的類型,並返回錯誤消息 "Input string was not in a correct format."

結論

在本文中,我們學會了使用 [int][System.Int32] 將字串轉換為整數。現在,我們可以輕鬆地在 PowerShell 中實現文字與數字之間的轉換。

通過控制變數類型,你可以在腳本中獲取準確性和靈活性。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相關文章 - PowerShell Convert