Runtime Debugger

kannan M ambadi

How do i return integers from a string ?

Suppose you are passing a string(for e.g.: “My name has 1 K, 2 A and 3 N”)  which may contain integers, letters or special characters. I want to retrieve only numbers from the input string. We can implement it in many ways such as splitting the string into an array or by using TryParse method. I would like to share another idea, that’s by using Regular expressions. All you have to do is, create an instance of Regular Expression with a specified pattern for integer. Regular expression class defines a method called Split, which splits the specified input string based on the pattern provided during object initialization.  

 

We can write the code as given below:

 

public static int[] SplitIdSeqenceValues(object combinedArgs)

        {

            var _argsSeperator = new Regex(@"\D+", RegexOptions.Compiled);

 

            string[] splitedIntegers = _argsSeperator.Split(combinedArgs.ToString());

 

            var args = new int[splitedIntegers.Length];

 

            for (int i = 0; i < splitedIntegers.Length; i++)

                args[i] = MakeSafe.ToSafeInt32(splitedIntegers[i]);            

 

            return args;

        } 

 

It would be better, if we set to RegexOptions.Compiled so that the regular expression will have performance boost by faster compilation.

 

Happy Programming  :))

 

 

Comments

Raman said:

Nice post...

very informative.....

Thanks

# March 17, 2010 7:46 AM

Praveen Chandran said:

Actually, for writing this code, i helped him a lot.

kannan, dont forget that.

# March 17, 2010 8:04 AM

kannan.ambadi said:

Happy Programming :)

# March 17, 2010 8:15 AM

web-crossing said:

In Ruby it's:

numbers = "My name has 1 K, 2 A and 3 N".scan /\d+/

# March 17, 2010 8:20 AM

dt said:

its really useful

# November 10, 2010 2:34 AM
Leave a Comment

(required) 

(required) 

(optional)

(required)