在Powershell中,如何将尾随'符号'的字符串转换为数字?
问题描述:
我需要使用Powershell将带有可选尾标的字符串转换为实际数字。在Powershell中,如何将尾随'符号'的字符串转换为数字?
可能的字符串是:
- 1000-
- 323+
我试图使用System.Int.TryParse与AllowTrailingSign的的NumberStyles,但我无法解决如何使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);
答
如果您确定符号可能是 - 或+,String.Replace可以提供帮助。
如果你的意思是323-应该返回-323,检查符号并乘以-1会有帮助。
答
[System.Globalization.NumberStyles]::AllowTrailingSign
我还应该指出,当我一般处理枚举时,有时候我可以通过键入一个字符串来获得。例如。在这种情况下,只要把
"AllowTrailingSign"
最后说明一点,对于所有可能的值quizzing枚举时,使用该行:
[System.Globalization.NumberStyles] | gm -static
答
这里的获取枚举值的更好方法:
$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)
请参阅ms对我来说你的意思是:$ type = [System.Globalization.NumberStyles]; [enum] :: GetValues($ type); – 2008-11-19 23:33:39