Powershellでは、末尾の「記号」を持つ文字列を数値に変換するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/300606

質問

Powershellを使用して、オプションの末尾記号を含む文字列を実際の数字に変換する必要があります。

可能な文字列は次のとおりです。

  • 1000-
  • 323 +
  • 456

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);

他のヒント

[System.Globalization.NumberStyles]::AllowTrailingSign

また、列挙型を一般的に扱っている場合、文字列を入力することで取得できる場合があることも指摘しておく必要があります。例えば。この場合、置くだけ

"AllowTrailingSign"

最後に、すべての可能な値の列挙をクイズするときは、次の行を使用します:

[System.Globalization.NumberStyles] | gm -static

列挙値を取得するより良い方法は次のとおりです。

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

符号が-または+である可能性があることが確実な場合、String.Replaceが役立ちます。

323-が-323を返すことを意味する場合、符号を確認し、-1を乗算すると役立ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top