在Powershell中,如何将带有尾随“符号”的字符串转换为数字?

7

我需要使用Powershell将带有可选尾随符号的字符串转换为实际数字。

可能出现的字符串如下:

  • 1000-
  • 323+
  • 456

我尝试使用带有AllowTrailingSign的NumberStyles的System.Int.TryParse,但是我不知道如何使System.Globalization.NumberStyles在Powershell中可用。

4个回答

5

EDIT: as per Halr9000's suggestion

$foo = "300-";
$bar = 0;
$numberStyles = [System.Globalization.NumberStyles];
$cultureInfo = [System.Globalization.CultureInfo];

[int]::TryParse($foo, $numberStyles::AllowTrailingSign, $cultureInfo::CurrentCulture, [ref]$bar);

3
[System.Globalization.NumberStyles]::AllowTrailingSign

我还应该指出,当我处理枚举类型时,有时可以通过输入字符串来完成。例如,在这种情况下,只需输入:

"AllowTrailingSign"

最后提醒,当查询枚举的所有可能值时,请使用以下代码行:
[System.Globalization.NumberStyles] | gm -static

2

这里有一种更好的方法来获取枚举值:

$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)

看起来你的意思是:$type = [System.Globalization.NumberStyles];[enum]::GetValues($type); - Jim Burger

0

如果你确定符号可能是 - 或 +,可以使用 String.Replace 函数。

如果你的意思是 323- 应该返回 -323,检查符号并将其乘以 -1 就可以了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接