Solved

How to Determine if String is an Integer Using C#

Posted on 2012-04-03
11
495 Views
Last Modified: 2012-04-09
I am having locating information on how to determine if a string is an integer in C#. Are there any built in functions that could look at this and deterine if the string is a integer? Any help would be greatly appreciated.
0
Comment
Question by:thenthorn1010
  • 4
  • 2
  • 2
  • +3
11 Comments
 
LVL 12

Accepted Solution

by:
Alfredo Luis Torres Serrano earned 100 total points
ID: 37803101
Try the static IsNumber() method on the Char class.

E.g.:

char c = 'a';
if (Char.IsNumber(c))
{
//do whatever...
}

Hope that helps.
0
 
LVL 9

Assisted Solution

by:wasiftoor
wasiftoor earned 100 total points
ID: 37803102
You are use the built in parse functions for this purpose. Sample code attached.

string Str = textBox1.Text.Trim();
double Num;
bool isNum = double.TryParse(Str, out Num);
if (isNum)
MessageBox.Show(Num.ToString());
else
MessageBox.Show("Invalid number");

Open in new window

0
 
LVL 5

Assisted Solution

by:hafeezmca
hafeezmca earned 100 total points
ID: 37803143
Hi,

Place a textbox, command button and label.
Place the following code to acheive the task.

protected void Button1_Click(object sender, System.EventArgs e)
{
      bool result = false;
      result = IsInt(this.TextBox1.Text);
      if (result == true) {
            this.Label1.Text = "Integer";
      } else {
            this.Label1.Text = "Non Integer";
      }

}

private bool IsInt(string param)
{
      try {
            int i = int.Parse(param);
            return true;
      } catch {
            return false;
      }
}

There are other ways you could do this as well like making sure that the only numeric characters are entered in the texbox by using Range validator control. This will wont require you to write a single line of code. It can be done at design time itself.
0
 
LVL 27

Expert Comment

by:Chinmay Patel
ID: 37804440
Hi thenthorn1010,

I would use wasiftoor's solution.

It's always good to use TryParse methods, just don't use double.TryParse. use int.TryParse.
Also this TryParse methods are available for many primitive data types.

Regards.
Chinmay,
0
 
LVL 15

Assisted Solution

by:navneethegde
navneethegde earned 100 total points
ID: 37804770
Hi!

Add reference to your Project
Microsoft.VisualBasic


using Microsoft.VisualBasic;

then in project try

Information.IsNumeric()


Thanks!
0
Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

 
LVL 40

Assisted Solution

by:Jacques Bourgeois (James Burger)
Jacques Bourgeois (James Burger) earned 100 total points
ID: 37804894
Chinmay_Patel answer is the only one that it really good. All the other ones have problems.

Char.IsNumber will say OK with numbers that are not integer.
Same with Double.TryParse.
Same thing with Information.IsNumeric, that is VB anyway. Why use VB in C# when the framework has methods to do the job?
int.Parse imply a try...catch, while TryParse does the job without a try...catch, which is always better because triggering exceptions requires a lot of resources.

So the only way to get a good result without involving too much overhead is to use int.TryParse.
0
 
LVL 15

Expert Comment

by:navneethegde
ID: 37805279
@JamesBurger

Once code is compiled nothing is VB.Net or C#, Everything is .Net(MSIL).
Also IsNumeric is tried and tested.
When things are available, why re-invent the wheel.

Also which has beter chances of success?

            int res = 0;
            int.TryParse("2147483648",out res);
            bool isNum = Information.IsNumeric("2147483648");

Ofcourse I may be wrong saying IsNumeric is good.

Thanks!
0
 
LVL 15

Expert Comment

by:navneethegde
ID: 37805281
0
 
LVL 40
ID: 37806478
@navneethedge

Look at the date of the article you are pointing: 2003, 9 years ago, that is a long time. And it was at the beginning of the year, we were still in Visual Studio 2002, with framework 1.0. Things have change a bit since then. TryParse did not exist at that time.

TryParse is part of the framework and available in all languages. IsNumeric forces you to reference a library from another language to work in C#, a very strange idea considering that C# has what you need.

And the main problem with the question discussed here is that it is about knowing if a string is an integer. If a string contains "1.2", IsNumeric will return True while the string does not contain an integer. Bad answer.

TryParse adapt to any type you use it with. If you call it on a Byte for instance, it won't return True on negative values or if the value in the String is higher than 255. It is a lot more precise. If you were to use IsNumeric, you would have to check for those 2 conditions. IsNumeric does it in one shot.
0
 
LVL 15

Expert Comment

by:navneethegde
ID: 37806721
@JamesBurger : thanks and agree.
0
 
LVL 27

Expert Comment

by:Chinmay Patel
ID: 37808067
@jamesburger
:P Thanks :) Saved Me Some Time ;)
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now