私は意味:文字列が正の整数であるかどうかを確認する方法はありますか?
1231 YES
121.1241 NO
121,1241 NO
-121 NO
124a NO
私はC#でより速く、それをどのように行うことができますか?
私は意味:文字列が正の整数であるかどうかを確認する方法はありますか?
1231 YES
121.1241 NO
121,1241 NO
-121 NO
124a NO
私はC#でより速く、それをどのように行うことができますか?
int x;
if (int.TryParse(str, out x) && x > 0)
なぜ 'uint.TryParse(str、out x)'ではないのですか?私はそれがより効率的であると想像することができます。なぜなら、 '-'を確認する必要がないからです。 – Firo
私はコードを書くのではなく、もう少し説明が必要だと思います。 –
を解析し、実際の代わりに、文字列が空でないと、あなたがそれを許可する場合のみ有力+
記号で、必要に応じて、数字が含まれているかどうかを確認することです。
これは範囲チェックを実行しないため、int
またはlong
に収まらない場合でも、9999999999999999999999999999999999が有効であることに注意してください。
あなたはそのために正規表現を使用するか、またはおそらくLINQできます
var nonNegative = text.Length > 0 && text.All(c => c >= '0' && c <= '9');
(これはGuffaのChar.IsDigit
アプローチに似ていますが、ASCII数字に自分自身を制限し、多くの非ASCII数字がUnicodeにあります。)だけではなく、正値 - これは非負の値に制限しますことを
注意。どのように "0"と "0000"を扱いますか?
それは数字のみが含まれているかどうかをチェックすることができますどのような範囲で
if (theString.All(Char.IsDigit))
正の整数? ( 'int.MaxValue'または' int.LongValue'より大きい値の場合はどうすればよいでしょうか?)先頭のスペースは有効ですか?先頭の+記号はどうですか? –
ああ、何を約0?あなたは本当に*肯定*、または非否定を意味しましたか? –
'1.0'についてはどうですか? –