我有很多字符串,如:
“8798dsfgsd98gs87£%” %001912.43.36“。
如何删除所有非数字字符并获取数字以便我可以获得:
“879898870019124336”
在C#中?
由于
答案 0 :(得分:6)
var text = "8798dsfgsd98gs87£%"%001912.43.36.";
var numText = new string( text.Where(c=>char.IsDigit(c)).ToArray() );
修改强>
如果您的目标是效果,请使用StringBuilder
:
var text = "8798dsfgsd98gs87£%"%001912.43.36.";
var numText = new StringBuilder();
for(int i = 0; i < text.Length; i++) {
char c = text[i];
if ( char.IsDigit(c) ) {
numText.Append(c);
}
}
答案 1 :(得分:2)
string text = "8798dsfgsd98gs87£%\"%001912.43.36.";
string digits = Regex.Replace(text, "[^0-9]", ""); // "879898870019124336"
答案 2 :(得分:0)
string str = "8798dsfgsd98gs87£%%001912.43.36.";
string result = string.Empty;
for (int j = 0; j < str.Length; j++)
{
int i;
try
{
i = Convert.ToInt16(str[j].ToString());
result += i.ToString();
}
catch { }
}
试试这种方式......
答案 3 :(得分:0)
正则表达式回答......
using System.Text.RegularExpressions;
private string justNumeric(string str)
{
Regex rex = new Regex(@"[^\d]");
return rex.Replace(str,"");
}
答案 4 :(得分:0)
另一个正则表达式的答案;
string str = "8798dsfgsd98gs87£%%001912.43.36.";
string justNumbers = new Regex(@"\D").Replace(str,"");