我只想要数字。
string str_a = "a1bc2d23ghj2";
int in_b = convert.toint32(str_a); // doesn't works
我希望in_b的输出为:12232
答案 0 :(得分:7)
string str_a = "a1bc2d23ghj2";
string str_digits_only = new String(str_a.Where(char.IsDigit).ToArray());
int in_b = Convert.ToInt32(str_digits_only);
答案 1 :(得分:2)
StringBuilder builder = new StringBuilder();
foreach (char c in str_a)
{
if (Char.IsDigit(c))
{
builder.Append(c);
}
}
int in_b = Int32.Parse(builder.ToString());
答案 2 :(得分:0)
它不起作用,因为输入字符串不是有效数字,还因为您必须使用Convert.ToInt32(string)
或int.Parse(string)
。
如果您只想从字符串中提取数字,可以使用LINQ:
string onlyNumbers = (from ch in str_a
where char.IsDigit(ch)
select ch.ToString()).Aggregate((a, b) => a + b);
int in_b = int.Parse(onlyNumbers);
答案 3 :(得分:0)
我的解决方案是检查字符串中字符的字符代码。选择所有数字并进行转换:
var str_a = "a1bc2d23ghj2";
var in_b = Convert.ToInt32(string.Join(string.Empty,str_a.Where(x => x >= 48 && x <= 57)));
答案 4 :(得分:0)
int num = Convert.ToInt(System.Text.Regex.Replace(stra, "[^0-9]", string.Empty));
答案 5 :(得分:-2)
查看tryparse方法。