如何计算混合文本/数字字符串中的数字
问题描述:
所以我正在尝试做的是取一个工作号码,看起来像这个xxx123432,并计算输入中的数字,但不是字母。然后,我想将这些数字分配给一个变量,然后使用该变量对作业编号进行检查,以确定它们是否处于有效格式。如何计算混合文本/数字字符串中的数字
我已经想出了如何执行检查,但我不知道如何去计算工作号码中的数字。
非常感谢您的帮助。
答
也许这样的事情?
string jobId = "xxx123432";
int digitsCount = 0;
foreach(char c in jobId)
{
if(Char.IsDigit(c))
digitsCount++;
}
而且你可以使用LINQ,像这样:
string jobId = "xxx123432";
int digitsCount = jobId.Count(c => char.IsDigit(c));
答
int x = "xxx123432".Count(c => Char.IsNumber(c)); // 6
或
int x = "xxx123432".Count(c => Char.IsDigit(c)); // 6
这两种方法之间的差异见Char.IsDigit和Char.IsNumber。
答
string str = "t12X234";
var reversed = str.Reverse().ToArray();
int digits = 0;
while (digits < str.Length &&
Char.IsDigit(reversed[digits])) digits++;
int num = Convert.ToInt32(str.Substring(str.Length - digits));
这给出了数字234作为输出,如果这是你所需要的。
其他linq/lambda变体只计算我认为不完全正确的字符,如果你有像“B2B_MESSAGE_12344”这样的字符串,因为它会计算B2B中的2。
但我不确定我是否正确理解了多少数字意味着什么。是数字的计数(其他答案)还是数字形成的数字(本答案)。
+0
我想我应该更清楚一点。我正在寻找数字的计数,但感谢您的答案。 – OneFreeFitz 2011-05-13 13:33:31
你需要计算'1 + 2 + 3 + 4 + 3 + 2'吗?或者统计一些数字(6)?或者是什么? – abatishchev 2011-05-12 20:07:14
我需要计算数字的数量。 – OneFreeFitz 2011-05-12 20:12:45