English 中文(简体)
我怎么能够检查一下是否有人?
原标题:How can I check if a string is a number?
  • 时间:2011-07-18 13:29:27
  •  标签:
  • c#

我很想知道,在C#中,如何检查一下是否有人(仅几个人)。

例:

141241   Yes
232a23   No
12412a   No

目 录

是否有具体职能?

最佳回答

查阅<代码>。 TryParse() 如果你再谈论像1-23.14159等编号的话。 还有一些建议是<条码>int.TryParse(),但结果将失败。

string candidate = "3.14159";
if (double.TryParse(candidate, out var parsedNumber))
{
    // parsedNumber is a valid number!
}

EDIT:正如Lukasz在下文所述,当把数字同小异构体混为一谈时,我们就应当铭记可怕的文化,即:

double.TryParse (candidate, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out var parsedNumber>

问题回答

如果你只是想check,那么如果扼杀是所有数位数(在一定数目范围内),你可以使用:

string test = "123";
bool allDigits = test.All(char.IsDigit);

int temp;
int.TryParse("141241", out temp) = true
int.TryParse("232a23", out temp) = false
int.TryParse("12412a", out temp) = false

希望这一帮助。

Use Int32.TryParse()

int num;

bool isNum = Int32.TryParse("[string to test]", out num);

if (isNum)
{
    //Is a Number
}
else
{
    //Not a number
}

页: 1

Use int.TryParse():

string input = "141241";
int ouput;
bool result = int.TryParse(input, out output);

具体结果如下:true

int value;
if (int.TryParse("your string", out value))
{
    Console.WriteLine(value);
}

这是我个人喜欢的。

private static bool IsItOnlyNumbers(string searchString)
{
return !String.IsNullOrEmpty(searchString) && searchString.All(char.IsDigit);
}

Perhaps you re looking for the int.TryParse function.

int result = 0;
bool isValidInt = int.TryParse("1234", out result);
//isValidInt should be true
//result is the integer 1234

Of course, you can check against other number types, like decimal or double.

您应使用TryParse方法处理 in问题。

string text1 = "x";
    int num1;
    bool res = int.TryParse(text1, out num1);
    if (res == false)
    {
        // String is not a number.
    }

如果你想要证明每个特性是一位数,并且作为错误信息验证的一部分,还恢复不是一位数的特性,那么你可以穿透每个故事。

string num = "123x";

foreach (char c in num.ToArray())
{
    if (!Char.IsDigit(c))
    {
        Console.WriteLine("character " + c + " is not a number");
        return;
    }
}

int.TryPasrse() Methode is the best way so if the value was string you will never have an exception , instead of the TryParse Methode return to you bool value so you will know if the parse operation succeeded or failed

string yourText = "2";
int num;
bool res = int.TryParse(yourText, out num);
if (res == true)
{
    // the operation succeeded and you got the number in num parameter
}
else
{
   // the operation failed
}
string str = "123";
int i = Int.Parse(str);

如果体力是有效的惯性,则该体将被转换为ger,并储存在其他明智的例外中。

Starting with C# 7.0, you can declare the out variable in the argument list of the method call, rather than in a separate variable declaration. This produces more compact, readable code, and also prevents you from inadvertently assigning a value to the variable before the method call.

bool isDouble = double.TryParse(yourString, out double result);

https://learn.microsoft.com/en-us/dotnet/csharp/English-vis/keywords/out-para---modifier

你们可以使用以下法典:

    string numbers = "numbers you want to check";

    Regex regex = new Regex("^[0-9]+$"));

    if (regex.IsMatch(numbers))
    {
        //string value is a number
    }
public static void Main()
        {
            string id = "141241";
            string id1 = "232a23";
            string id2 = "12412a";

            validation( id,  id1,  id2);
        }

       public static void validation(params object[] list)
        {
            string s = "";
            int result;
            string _Msg = "";

            for (int i = 0; i < list.Length; i++)
            {
                s = (list[i].ToString());

               if (string.IsNullOrEmpty(s))
               {
                   _Msg = "Please Enter the value"; 
               }

               if (int.TryParse(s, out result))
               {
                   _Msg = "Enter  " + s.ToString() + ", value is Integer";

               }
               else
               {
                   _Msg = "This is not Integer value ";
               }
            }
        }

Try This

here i perform addition of no and concatenation of string

 private void button1_Click(object sender, EventArgs e)
        {
            bool chk,chk1;
            int chkq;
            chk = int.TryParse(textBox1.Text, out chkq);
            chk1 = int.TryParse(textBox2.Text, out chkq);
            if (chk1 && chk)
            {
                double a = Convert.ToDouble(textBox1.Text);
                double b = Convert.ToDouble(textBox2.Text);
                double c = a + b;
                textBox3.Text = Convert.ToString(c);
            }
            else
            {
                string f, d,s;
                f = textBox1.Text;
                d = textBox2.Text;
                s = f + d;
                textBox3.Text = s;
            }
        }

我不是特别高技能的策划者,但当我需要解决这一问题时,我选择了可能非常不合法的解决方法,但符合我的需求。

    private bool IsValidNumber(string _checkString, string _checkType)
    {
        float _checkF;
        int _checkI;
        bool _result = false;

        switch (_checkType)
        {
            case "int":
                _result = int.TryParse(_checkString, out _checkI);
                break;
            case "float":
                _result = Single.TryParse(_checkString, out _checkF);
                break;
        }
        return _result;

    }

I simply call this with something like:

if (IsValidNumber("1.2", "float")) etc...

It means that I can get a simple true/false answer back during If... Then comparisons, and that was the important factor for me. If I need to check for other types, then I add a variable, and a case statement as required.

use this

 double num;
    string candidate = "1";
    if (double.TryParse(candidate, out num))
    {
        // It s a number!


 }
int num;
bool isNumeric = int.TryParse("123", out num);
namespace Exception
{
    class Program
    {
        static void Main(string[] args)
        {
            bool isNumeric;
            int n;
            do
            {
                Console.Write("Enter a number:");
                isNumeric = int.TryParse(Console.ReadLine(), out n);
            } while (isNumeric == false);
            Console.WriteLine("Thanks for entering number" + n);
            Console.Read();
        }
    }
}
Regex.IsMatch(stringToBeChecked, @"^d+$")

Regex.IsMatch("141241", @"^d+$")  // True

Regex.IsMatch("232a23", @"^d+$")  // False

Regex.IsMatch("12412a", @"^d+$")  // False

一些建议的解决办法是,这些解决办法没有考虑到各种不同的紧急编号格式。 以下职能:

public bool IsNumber(String value)
{
    double d;
    if (string.IsNullOrWhiteSpace(value)) 
        return false; 
    else        
        return double.TryParse(value.Trim(), System.Globalization.NumberStyles.Any,
                            System.Globalization.CultureInfo.InvariantCulture, out d);
}

缔约国认为,各种浮动编号风格,如 de(英文)和decima comma(德国)都是允许的。 如果情况并非如此,则改变序号。 注:Any <>/code> > >不包括中程,因为双倍不支持。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...