Определите, является ли строка числом - PullRequest
649 голосов
/ 21 мая 2009

Если у меня есть эти строки:

  1. "abc" = false

  2. "123" = true

  3. "ab2" = false

Есть ли команда, например IsNumeric() или что-то еще, которая может определить, является ли строка допустимым числом?

Ответы [ 23 ]

0 голосов
/ 21 мая 2009
0 голосов
/ 07 апреля 2013
//To my knowledge I did this in a simple way
static void Main(string[] args)
{
    string a, b;
    int f1, f2, x, y;
    Console.WriteLine("Enter two inputs");
    a = Convert.ToString(Console.ReadLine());
    b = Console.ReadLine();
    f1 = find(a);
    f2 = find(b);

    if (f1 == 0 && f2 == 0)
    {
        x = Convert.ToInt32(a);
        y = Convert.ToInt32(b);
        Console.WriteLine("Two inputs r number \n so that addition of these text box is= " + (x + y).ToString());
    }
    else
        Console.WriteLine("One or two inputs r string \n so that concatenation of these text box is = " + (a + b));
    Console.ReadKey();
}

static int find(string s)
{
    string s1 = "";
    int f;
    for (int i = 0; i < s.Length; i++)
       for (int j = 0; j <= 9; j++)
       {
           string c = j.ToString();
           if (c[0] == s[i])
           {
               s1 += c[0];
           }
       }

    if (s == s1)
        f = 0;
    else
        f = 1;

    return f;
}
0 голосов
/ 18 июля 2013

Вставьте ссылку на Visual Basic в своем проекте и используйте его метод Information.IsNumeric, такой как показан ниже, и сможете захватывать числа с плавающей запятой, а также целые числа в отличие от ответа выше, который захватывает только целые числа.

    // Using Microsoft.VisualBasic;

    var txt = "ABCDEFG";

    if (Information.IsNumeric(txt))
        Console.WriteLine ("Numeric");

IsNumeric("12.3"); // true
IsNumeric("1"); // true
IsNumeric("abc"); // false
...