在 Powershell 中,如何将带有尾随“符号”的字符串转换为数字?
-
08-07-2019 - |
题
我需要使用 Powershell 将带有可选尾随符号的字符串转换为实际数字。
可能的字符串有:
- 1000-
- 323+
- 456
我正在尝试将 System.Int.TryParse 与 NumberStyles 为AllowTrailingSign 一起使用,但我无法弄清楚如何使 System.Globalization.NumberStyles 可用于 Powershell。
解决方案
编辑:根据Halr9000的建议
$foo = "300-";
$bar = 0;
$numberStyles = [System.Globalization.NumberStyles];
$cultureInfo = [System.Globalization.CultureInfo];
[int]::TryParse($foo, $numberStyles::AllowTrailingSign, $cultureInfo::CurrentCulture, [ref]$bar);
其他提示
[System.Globalization.NumberStyles]::AllowTrailingSign
我还应该指出,当我一般处理枚举时,有时我可以通过输入字符串来获取。例如。在这种情况下,只需输入
"AllowTrailingSign"
最后注意,在查询 Enum 的所有可能值时,请使用以下行:
[System.Globalization.NumberStyles] | gm -static
这是获取枚举值的更好方法:
$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)
如果您确定符号可能是 - 或 +,String.Replace 可能会有所帮助。
如果您的意思是 323- 应该返回 -323,检查符号并将其乘以 -1 会有所帮助。
不隶属于 StackOverflow