当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 PowerShell 中将字符串转换为 Int?

作者:精品下载站 日期:2024-12-14 05:17:09 浏览:12 分类:玩电脑

如何在 PowerShell 中将字符串转换为 Int?


最近,我的一位团队成员努力弄清楚如何在 PowerShell 自动化脚本中将字符串转换为 int。我建议了几个方法。在本教程中,我将通过示例向您展示如何使用六种方法在 PowerShell 中将字符串转换为 int

要在 PowerShell 中将字符串转换为整数,可以使用 [int] 类型加速器。例如,如果您有一个字符串 $stringNumber=“123”,则可以通过转换将其转换为整数:$intNumber=[int]$stringNumber。这种方法非常简单,并且可以有效地将数字的字符串表示形式转换为整数。

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

让我向您展示在 PowerShell 中将字符串转换为 int 的不同方法。我们将为每种方法提供示例。我已使用 VS Code 编辑器执行了所有脚本,但您可以使用您喜欢的任何编辑器。

我们将详细介绍以下方法:

  1. 使用类型转换
  2. 使用[int]类型加速器
  3. 使用::Parse()方法
  4. 使用::TryParse()方法
  5. 使用Convert
  6. 使用 - 作为运算符

方法 1:使用类型转换

类型转换是将字符串转换为整数的 PowerShell 最简单方法之一。您可以通过在字符串前添加 [int] 前缀将字符串转换为整数。

示例:

$stringNumber = "123"
$integerNumber = [int]$stringNumber
Write-Output $integerNumber

在此示例中,使用 [int] 将字符串 "123" 转换为整数。结果存储在 $integerNumber 中,然后输出到控制台。

执行上述 PowerShell 脚本后,您可以在下面的屏幕截图中看到输出。

[玩转系统] 如何在 PowerShell 中将字符串转换为 Int?

此方法适用于简单的转换。然而,它也有局限性:

  • 如果字符串无法转换为整数,则会引发异常。
  • 它不能很好地处理空格或非数字字符。

当您确定字符串包含有效的整数值时,通常会使用 [int] 进行转换。

处理非数字字符串:

如果字符串包含非数字字符,PowerShell 将引发错误。您可以使用如下所示的 try-catch 块来处理错误:

$stringNumber = "123abc"
try {
    $integerNumber = [int]$stringNumber
} catch {
    Write-Output "Error: Cannot convert '$stringNumber' to an integer."
}

让我向您展示大多数 PowerShell 开发人员使用的另一个真实示例。

假设您有一个脚本提示用户输入两个数字,然后将它们相加。

以下是编写完整 PowerShell 脚本的方法。

$firstNumber = Read-Host "Enter the first number"
$secondNumber = Read-Host "Enter the second number"

try {
    $sum = [int]$firstNumber + [int]$secondNumber
    Write-Output "The sum is: $sum"
} catch {
    Write-Output "Error: Please enter valid numbers."
}

在此脚本中,用户输入被读取为字符串,然后在执行加法之前使用 [int] 转换为整数。

在这里,您可以在下面的屏幕截图中看到它抛出异常,因为我没有为第二个选项输入数字。

[玩转系统] 如何在 PowerShell 中将字符串转换为 Int?

阅读在 PowerShell 中将字符串转换为小写或大写

2. 使用 [int] 类型加速器

[int] 类型加速器是 PowerShell 中将字符串转换为整数的简写形式。它的工作原理与类型转换方法类似。

示例:

$stringNumber = "456"
$integerNumber = [int]$stringNumber
Write-Output $integerNumber

这是在 PowerShell 中将字符串转换为数字的另一种简单方法。

3. 使用 ::Parse() 方法

::Parse() 方法是 .NET 框架的一部分,用于在 PowerShell 中将字符串转换为整数。此方法很严格,如果字符串无法解析为整数,则会引发异常。当您想要确保输入是有效整数并显式处理异常时,它非常有用。

示例:

$stringNumber = "789"
$integerNumber = [int]::Parse($stringNumber)
Write-Output $integerNumber

当你执行上面的脚本时,它将返回789。

处理非数字字符串:

要处理非数字字符串,您可以使用 try-catch 块,如下所示。

$stringNumber = "789xyz"
try {
    $integerNumber = [int]::Parse($stringNumber)
} catch {
    Write-Output "Error: Cannot parse '$stringNumber' as an integer."
}

输出如下面的屏幕截图所示。我执行了上面的脚本,它抛出了异常。

[玩转系统] 如何在 PowerShell 中将字符串转换为 Int?

阅读在 PowerShell 中将字符串转换为 JSON

4. 使用 ::TryParse() 方法

::TryParse() 方法是 PowerShell 中 ::Parse() 更安全的替代方法。它尝试将字符串转换为整数并返回指示成功或失败的布尔值。如果转换失败,它不会抛出异常。

示例:

$stringNumber = "42"
$intNumber = 0
if ([int]::TryParse($stringNumber, [ref]$intNumber)) {
    Write-Output "Conversion successful: $intNumber"
} else {
    Write-Output "Conversion failed"
}

在此示例中,::TryParse() 尝试将字符串 "42" 转换为整数。如果成功,整数值将存储在$integerNumber中,并将结果输出到控制台。否则,将显示错误消息。

阅读在 PowerShell 中计算字符串中的字符数

5. 使用Convert类

PowerShell 中的 Convert 类提供了一个 ToInt32() 方法来将字符串转换为整数。此方法是 .NET 框架的一部分,类似于 ::Parse() 方法。

示例:

$stringNumber = "131415"
$integerNumber = [Convert]::ToInt32($stringNumber)
Write-Output $integerNumber

处理非数字字符串:

要处理非数字字符串,请使用 try-catch 块,如下所示。

$stringNumber = "131415abc"
try {
    $integerNumber = [Convert]::ToInt32($stringNumber)
} catch {
    Write-Output "Error: Cannot convert '$stringNumber' to an integer."
}

请查看下面的屏幕截图,了解执行上述 PowerShell 脚本后的确切输出。

[玩转系统] 如何在 PowerShell 中将字符串转换为 Int?

6. 使用 -as 运算符

-as 运算符是在 PowerShell 中执行类型转换的另一种方法。它尝试将值转换为指定类型,如果转换失败则返回 $null

示例:

$stringNumber = "101"
$intNumber = $stringNumber -as [int]
if ($intNumber -ne $null) {
    Write-Output "Conversion succeeded: $intNumber"
} else {
    Write-Output "Conversion failed"
}

在本例中,-as 运算符将字符串 "101" 转换为整数 101。如果字符串无法转换,则返回$null

结论

作为 PowerShell 的开发人员,您会遇到将字符串转换为整数的需求。在本教程中,我通过示例解释了如何使用各种方法在 PowerShell 中将字符串转换为整数

我更喜欢在 PowerShell 中使用类型转换方法将字符串转换为整数。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯