他の人が言っているように、あなたはこのint.TryParse
方法を使うことができますが、あなたの数が本当に非常に大きくない限り、TryParse
int32よりも範囲が広い他のタイプの方法を使うことができます。(もちろん、NumberStyles.None
記号や句読点を避けるために、オプションを使用します)。
内訳は次のとおりです。
int
-2,147,483,648 .. 2,147,483,647 ..
uint
0 .. 4,294,967,295
long
-9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807 ..
ulong
0 .. 18,446,744,073,709,551,615 ..
float
-3.402823e38 .. 3.402823e38 ..
double
-1.79769313486232e308 .. 1.79769313486232e308 ..
decimal
-79228162514264337593543950335 .. 79228162514264337593543950335 ..
最大数を解析できるのはですDouble
。数値を使用する必要がある場合、ある程度の精度は失われますが、非常に長い数値を解析できます(ただし、使用する必要はないので問題はありません)。私が行った簡単なテストでは、次の文字列を正常に解析できました。
79228162514264337593543950335792281625142643375935439503357922816251426433759354395033579228162514264337593543950335792281625142643375935439503357922816251426433759354395033579228162514264337593543950335792281625142643375935439503357922816251426433759354395033579228162514264337593543950335234234234234243423
(つまり、308文字で、もう1つの数字で失敗します)
それでも、数字を使用しない場合は、やり過ぎかもしれないので、Regexを使用するか、各文字が数字であることを確認するループを使用することをお勧めします。
それから少し気が狂ったようになりたい場合は、それをいくつかの小さな文字列に分割し、タスクライブラリを使用して並行してチェックすることができます:P
(私は今少しオフトピックを知っていますが、それをしたい場合は、このC9 10minクリップをチェックしてください:parallel.for
Parallel For Partition Ranger)Partition Ranger