Проверять, имеет ли строковое значение числовое значение или не в C#

Добро пожаловать в SO!

Проблема, с которой вы столкнулись, заключается в следующей строке:

super(size);

, потому что в классе нет конструктора с одним аргументом Clothing. Так как вы знаете, что Jeans синего цвета, вам нужно использовать конструктор с двумя аргументами, например:

public Jeans(String size)
{
  super(size,"blue");
}

Или, может быть, лучше:

private final String COLOR = "blue";
public Jeans(String size)
{
  super(size,COLOR);
}
11
задан balaweblog 23 November 2008 в 02:58
поделиться

5 ответов

Что относительно регулярного выражения:

bool val = System.Text.RegularExpressions.Regex.IsMatch(str, @"\d");
32
ответ дан 3 December 2019 в 00:56
поделиться

При поиске целочисленного значения, Вы могли бы использовать интервал. TryParse:

int result;
if (int.TryParse("123", out result))
{
    Debug.WriteLine("Valid integer: " + result);
}
else
{
    Debug.WriteLine("Not a valid integer");
}

Для проверки десятичного числа замените интервал. TryParse с Десятичным числом. TryParse. Проверьте это сообщение в блоге и комментарии, "Почему необходимо использовать TryParse () в C#" для деталей.

При необходимости в десятичных числах Вы могли бы альтернативно использовать это регулярное выражение:

return System.Text.RegularExpressions.Regex.IsMatch(
   TextValue, @"^-?\d+([\.]{1}\d*)?$");

И наконец другая альтернатива (если Вы не неукоснительно против VB.NET), Вы могли бы использовать метод в Microsoft. Пространство имен VisualBasic:

Microsoft.VisualBasic.Information.IsNumeric("abc"); 
9
ответ дан 3 December 2019 в 00:56
поделиться

Если Вы собираетесь циклично выполниться через строку, не используйте интервал. TryParse... это слишком тяжело. Вместо этого используйте символ. IsNumber ();

пример:

foreach (char c in myString)
    if (char.IsNumber(c))
        return true;
6
ответ дан 3 December 2019 в 00:56
поделиться

Если бы Вы - linq наркоман как я, Вы сделали бы это этот путь

string s = "abc1def2ghi";
bool HasNumber = (from a in s.ToCharArray() where a >= '0' && a <= '9' select a).Count() > 0;
0
ответ дан 3 December 2019 в 00:56
поделиться

в C# 2.0 попробуйте это:

        string str = "dfdsfdsf8fdfdfd9dfdfd4";

        for (int i = 0; i < str.Length; i++)
        {
            int result;
            if (int.TryParse(str[i].ToString(), out result))
            {
                //element is a number            
            }
            else
            {
                // not a number
            }
        }
0
ответ дан 3 December 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: