0

Stringaが数字のみで構成されているかどうかを確認する最も簡単な方法は何ですか?

4

4 に答える 4

2
if (Regex.IsMatch(input, "^[0-9]+$"))
    ....
于 2012-10-29T12:34:58.007 に答える
1

Char.IsDigitまたはを使用できますChar.IsNumber

var isNumber = str.Length > 0 && str.All(c => Char.IsNumber(c)); 

using System.Linq;(for を追加するEnumerable.Allか、代わりにループを使用することを忘れないでください)

またはint.TryParse代わりに使用します(またはdouble.TryParseなど):

bool isNumber = int.TryParse(str, out number);
于 2012-10-29T12:35:50.623 に答える
1

これをいくつかの場所で行う場合は、拡張メソッドを String クラスに追加します。

namespace System
{
    using System.Text.RegularExpressions;

    public static class StringExtensionMethods()
    {
        public static bool IsNumeric(this string input)
        {
            return Regex.IsMatch(input, "^[0-9]+$");
        }
    }
}

次に、次のように使用できます。

string myText = "123";

if (myText.IsNumeric())
{ 
    // Do something.
}
于 2012-10-29T13:03:24.217 に答える
0

正規表現を使用できます:

[TestCase("1234567890", true)]
[TestCase("1234567890a", false)]
public void NumericTest(string s, bool isnumeric)
{
    var regex = new Regex(@"^\d+$");
    Assert.AreEqual(isnumeric, regex.IsMatch(s));
}
于 2012-10-29T12:36:58.937 に答える