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

发布于 2024-07-09 17:18:40 字数 254 浏览 9 评论 0原文

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

可能的字符串是:

  • 1000-
  • 323+
  • 456

我正在尝试将 System.Int.TryParse 与 NumberStyles 为AllowTrailingSign 一起使用,但我不知道如何使 System.Globalization.NumberStyles 可用于 Powershell。

I need to convert strings with optional trailing signs into actual numbers using Powershell.

Possible strings are:

  • 1000-
  • 323+
  • 456

I'm trying to use System.Int.TryParse with a NumberStyles of AllowTrailingSign, but I can't work out how to make System.Globalization.NumberStyles available to Powershell.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

很糊涂小朋友 2024-07-16 17:18:40

编辑:根据 Halr9000 的建议

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

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

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);
酒解孤独 2024-07-16 17:18:40
[System.Globalization.NumberStyles]::AllowTrailingSign

我还应该指出,当我一般处理枚举时,有时我可以通过输入字符串来获取。 例如,在这种情况下,只需添加

"AllowTrailingSign"

最后的注释,当查询 Enum 的所有可能值时,请使用以下行:

[System.Globalization.NumberStyles] | gm -static
[System.Globalization.NumberStyles]::AllowTrailingSign

I should also point out, that when I'm dealing with enums in general, sometimes I can get by typing a string. E.g. in this case, just put

"AllowTrailingSign"

Final note, when quizzing an Enum for all possible values, use the line:

[System.Globalization.NumberStyles] | gm -static
酷遇一生 2024-07-16 17:18:40

这是获取枚举值的更好方法:

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

Here's a better way to get the enum values:

$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)
梦里南柯 2024-07-16 17:18:40

如果您确定符号可能是 - 或 +,String.Replace 可能会有所帮助。

如果您的意思是 323- 应该返回 -323,检查符号并将其乘以 -1 会有所帮助。

If you are sure that the signs could be - or +, String.Replace could help.

If you mean that 323- should return -323, checking for the sign and multiplying it by -1 would help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文