How do you remove all the alphabetic characters from a string?
Solution 1:
This should work:
// add directive at the top
using System.Text.RegularExpressions;
string numberOnly = Regex.Replace(s, "[^0-9.]", "")
Solution 2:
You should be able to solve this using Regex. Add the following reference to your project:
using System.Text.RegularExpressions;
after that you can use the following:
string value = Regex.Replace(<yourString>, "[A-Za-z ]", "");
double parsedValue = double.Parse(value);
Assuming you have only alphabetic characters and space as units.
Solution 3:
Using LINQ:
using System.Linq;
string input ="57.20000 KG ";
string output = new string(input.Where(c=>(Char.IsDigit(c)||c=='.'||c==',')).ToArray());
Solution 4:
The Regex, and Vlad's LINQ answers cover the solution well. And are both good options.
I had a similar problem, but I also wanted to only explicitly strip letters, and not to strip white space or etc, with this variant.
I also wanted it usable as below. Any of the other solutions could be packaged in a similar manner.
public static string StripAlpha(this string self)
{
return new string( self.Where(c => !Char.IsLetter(c)).ToArray() );
}
public static string StripNonNumeric(this string self)
{
// Use Vlad's LINQ or the Regex Example
return new string(self.Where(c=>(Char.IsDigit(c)||c=='.'||c==',')).ToArray()) ; // See Vlad's
}
This would then be used such as:
var newString = someString.StripAlpha();
var newString2 = someString.StripNonNumeric();
Solution 5:
Hi another solution is:
// add directive at the top
using System.Text.RegularExpressions;
string s = "24,99";
string numberOnly = Regex.Replace(s, "[^0-9,-]+", "")
This solution will not remove the dot e.g. question from user1804084:
this remove the dot for me e.g. 24.99 somechracter -> 2499
However it can still be convertet to a double where adding and subtraction works as normal.