閱讀類似問題的答案後,我想出了以下方法來測試數字文本框內容的問題。通過字符串循環保持僅數字和小數點
我現在的問題是:我的解決方案是否儘可能簡單?
internal static string testStringForNumber(string v)
{
// example: string strToTest = Data.CommonMethods.testStringForNumber(this.amountTextBox.Text.Trim());
string returnValue = "";
string chr = "";
int nLen = v.Length;
int i = 0; // this is my counter
while (i < nLen)
{
chr = v.Substring(i, 1);
switch (chr)
{
case ".":
returnValue = returnValue + chr;
break;
case "0":
returnValue = returnValue + chr;
break;
case "9":
returnValue = returnValue + chr;
break;
case "8":
returnValue = returnValue + chr;
break;
case "7":
returnValue = returnValue + chr;
break;
case "6":
returnValue = returnValue + chr;
break;
case "5":
returnValue = returnValue + chr;
break;
case "4":
returnValue = returnValue + chr;
break;
case "3":
returnValue = returnValue + chr;
break;
case "2":
returnValue = returnValue + chr;
break;
case "1":
returnValue = returnValue + chr;
break;
}
i = i + 1;
}
return returnValue;
}
'string'是'char'的一個枚舉類型,所以不需要執行代價昂貴的子字符串操作,只需執行'foreach(char c in v)'。另外,如果您將多個字符串或字符連接在一起,則使用'StringBuilder',在大多數情況下它將更加高效。 –
您的標題表示您希望保留滿足特定條件的字符,但是代碼段中方法的名稱似乎表明您只是想檢查字符串是否爲數字。那它是哪一個? –
您還應該使用'char.IsDigit(chr)'而不是多個大小寫構造。 –