如何在 PowerShell 中将字符串转换为整数

  1. 使用 [int] 将字符串转换为整数在 PowerShell 中
  2. 使用 [System.Int32] 将字符串转换为整数在 PowerShell 中
  3. 定义变量的数据类型以将字符串转换为整数在 PowerShell 中
  4. 结论
如何在 PowerShell 中将字符串转换为整数

在 PowerShell 中,知道如何将字符串转换为整数是一项宝贵的技能。本教程将教你如何在 PowerShell 中将字符串转换为整数。

我们将研究使用 [int][System.Int32] 进行此转换的技术,使您能够轻松修改数据。

使用 [int] 将字符串转换为整数在 PowerShell 中

在 PowerShell 中,我们可以使用 [int] 将字符串转换为整数。这被称为类型转换或类型转换。

以下语法是在 PowerShell 中的简单赋值语句,我们将字符串转换为整数,并将结果赋值给变量 $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] 将字符串转换为整数在 PowerShell 中

[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 中

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.GetType().Name 检查变量 $data 的数据类型。

输出:

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