C 中處理字串和數字

2021-04-09 10:23:18 字數 1043 閱讀 3784

原文出處:http://www.cnblogs.com/wayfarer/archive/2004/05/17/9950.html

在csdn上有人問:c#中有沒有判斷乙個string型別變數是否為數字型別的系統函式(如vb中的isnumeric(s))?

答案肯定是沒有的。有人提議用int.parse(string)的方法,然後通過捕獲異常來判斷返回的值。更好的方法是用正規表示式:

public int isnumeric(string str)

這應該是個好辦法。不過如果要提出更高的要求,例如不僅要判斷字串是否全為數字,還要在判斷後,要求將其進行轉換。那麼上述函式就有缺陷,因為在上面的正規表示式中無法判斷『-』符號。因此上面的函式只能轉換非負數。尤有甚者,要求轉換的不僅是整數,還包括浮點數,尤其是科學計數法的字串,例如:string s = "-3.14159e+10"

這裡面的'e'、'.'、'+'等字元,都是比較特殊的,而且還要求它們出現的位置要符合浮點數或科學計數方法的規定。那麼就不能使用正規表示式了,至少很麻煩(我是這樣認為的,或許有好的方法)。問題還是回到最初的解決方案,就是使用parse()方法和捕獲異常。以下是實現此功能的方法:

public bool isnumeric(string s, out double result)

catch

return breturn;     

}例如呼叫:

string s1="abc";

string s2="-3.14159e+10";

double d1,d2;

bool ty1 = isnumeric(s1,out d1);

bool ty2 = isnumeric(s2,out d2);

結果:ty1=false;d1=0;

ty2=true;d2=31415900000

說明:因為涉及到浮點數,就不能使用-1來做為出現錯誤的返回值,如前面的例子。也就是說本方法有兩個返回值,乙個是判斷轉換是否成功,為bool型;另乙個是轉換成功後的浮點數值。我用out來解決該問題。

本方法仍然適合整型,只需對返回值進行強制轉換即可。

C 中處理字串和數字

在csdn上有人問 c 中有沒有判斷乙個string型別變數是否為數字型別的系統函式 如vb中的isnumeric s 答案肯定是沒有的。有人提議用int.parse string 的方法,然後通過捕獲異常來判斷返回的值。更好的方法是用正規表示式 public int isnumeric strin...

C 中處理字串和數字

在csdn上有人問 c 中有沒有判斷乙個string型別變數是否為數字型別的系統函式 如vb中的isnumeric s 答案肯定是沒有的。有人提議用int.parse string 的方法,然後通過捕獲異常來判斷返回的值。更好的方法是用正規表示式 public int isnumeric strin...

C 中字串和數字互轉

1.直接利用 string 裡面的函式 詳細介紹 string裡面有什麼?字串轉換為數字 主要是這幾個函式 stoi,stoll,stod 等等,分別將 string 轉換為int,long long double型變數。數字轉換為字串 利用to string 函式,很多過載,非常友好。例子 字串轉...