所以我正在嘗試做的是取一個工作號碼,看起來像這個xxx123432,並計算輸入中的數字,但不是字母。然後,我想將這些數字分配給一個變量,然後使用該變量對作業編號進行檢查,以確定它們是否處於有效格式。如何計算混合文本/數字字符串中的數字
我已經想出瞭如何執行檢查,但我不知道如何去計算工作號碼中的數字。
非常感謝您的幫助。
所以我正在嘗試做的是取一個工作號碼,看起來像這個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。
但我不確定我是否正確理解了多少數字意味着什麼。是數字的計數(其他答案)還是數字形成的數字(本答案)。
我想我應該更清楚一點。我正在尋找數字的計數,但感謝您的答案。 – 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