如何计算混合文本/数字字符串中的数字

发布于 2024-11-06 11:19:04 字数 165 浏览 0 评论 0原文

所以我想做的是获取一个工作号码,看起来像 xxx123432,并计算条目中的数字,但不计算字母。然后,我想将数字的数量分配给一个变量,并使用该变量对作业编号进行检查,以确定它们是否采用有效的格式。

我已经弄清楚如何执行检查,但我不知道如何开始计算工作编号中的数字。

非常感谢您的帮助。

So what I'm trying to do, is take a job number, which looks like this xxx123432, and count the digits in the entry, but not the letters. I want to then assign the number of numbers to a variable, and use that variable to provide a check against the job numbers to determine if they are in a valid format.

I've already figured out how to perform the check, but I have no clue how to go about counting the numbers in the job number.

Thanks so much for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

旧话新听 2024-11-13 11:19:04

使用 LINQ :

var count = jobId.Count(x => Char.IsDigit(x));

var count = jobId.Count(Char.IsDigit);

Using LINQ :

var count = jobId.Count(x => Char.IsDigit(x));

or

var count = jobId.Count(Char.IsDigit);
伊面 2024-11-13 11:19:04
int x = "xxx123432".Count(c => Char.IsNumber(c)); // 6

int x = "xxx123432".Count(c => Char.IsDigit(c)); // 6

这两种方法之间的区别请参见 Char。 IsDigitChar.IsNumber

int x = "xxx123432".Count(c => Char.IsNumber(c)); // 6

or

int x = "xxx123432".Count(c => Char.IsDigit(c)); // 6

The difference between these two methods see at Char.IsDigit and Char.IsNumber.

小巷里的女流氓 2024-11-13 11:19:04

也许是这样的?

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));

Something like this maybe?

string jobId = "xxx123432";
int digitsCount = 0;
foreach(char c in jobId)
{
  if(Char.IsDigit(c))
    digitsCount++;
}

And you could use LINQ, like this:

string jobId = "xxx123432";
int digitsCount = jobId.Count(c => char.IsDigit(c));
安静 2024-11-13 11:19:04
    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));

如果您需要的话,这将给出 num 234 作为输出。

其他 linq/lambda 变体只计算字符,如果您有像“B2B_MESSAGE_12344”这样的字符串,我认为这并不完全正确,因为它会计算 B2B 中的 2。

但我不确定我是否正确理解了数字的含义。是数字的计数(其他答案)还是数字形成的数字(这个答案)。

    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));

This gives num 234 as output if that is what you need.

The other linq/lambda variants just count characters which I think is not completely correct if you have a string like "B2B_MESSAGE_12344", because it would count the 2 in B2B.

But I'm not sure if I understood correctly what number of numbers means. Is it the count of numbers (other answers) or the number that numbers form (this answer).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文