文字列変数解析可能な要素を含む正の整数値かどうかを知りたいだけです。今は値を解析したくありません。
現在私はやっています:
int parsedId;
if (
(String.IsNullOrEmpty(myStringVariable) ||
(!uint.TryParse(myStringVariable, out parsedId))
)
{//..show error message}
これはい-より簡潔にする方法
注:拡張メソッドについては知っていますが、組み込みのものがあるかどうか疑問に思います。
答えはjust no。のようです
他にも多くの良い答えがありますが、それらは単にjustさを隠している(私はそれを求めていませんでした)か、新しい問題を導入します(エッジケース)。
char.IsDigit を使用できます。
bool isIntString = "your string".All(char.IsDigit)
文字列が数値の場合、true
を返します
bool containsInt = "your string".Any(char.IsDigit)
文字列に数字が含まれる場合、true
を返します
文字列内のすべての文字が数字であることを確認したい場合、次のように Enumerable.All Extension Method と Char.IsDigit Method を使用できます。
bool allCharactersInStringAreDigits = myStringVariable.All(char.IsDigit);
たぶんこれは助けることができます
string input = "hello123world";
bool isDigitPresent = input.Any(c => char.IsDigit(c));
msdn からの回答。
文字列に数字のみが含まれているかどうかを確認できます。
Regex.IsMatch(myStringVariable, @"^-?\d+$")
ただし、数値はInt32.MaxValue
より大きくても、Int32.MinValue
より小さくてもかまいません。そのことに留意してください。
別のオプション-拡張メソッドを作成し、thereいコードをそこに移動します:
public static bool IsInteger(this string s)
{
if (String.IsNullOrEmpty(s))
return false;
int i;
return Int32.TryParse(s, out i);
}
これにより、コードがよりきれいになります。
if (myStringVariable.IsInteger())
// ...
これは私のために働きます。
("your string goes here").All(char.IsDigit)
ごめんなさい、あなたの質問は全く得られませんでした。こんな感じ?
str.ToCharArray().Any(char.IsDigit);
または、追加の文字列なしで、値は完全に整数でなければなりませんか?
if(str.ToCharArray().All(char.IsDigit(c));