我想在將字符串追加到StringBuilder以確保數字字符在字符串中之前對字符串執行檢查。什麼是簡單的方法來做到這一點?檢查VB.NET中的唯一數字字符串
回答
使用Integer.TryParse(),如果字符串中只有數字,它將返回true。 Int32的最大值是2,147,483,647,所以如果你的值小於那麼那麼你的罰款。 http://msdn.microsoft.com/en-us/library/f02979c7.aspx
您還可以使用Double.TryParse(),它的最大值爲1.7976931348623157E + 308,但它將允許小數點。
如果希望得到在某時刻
string test = "1112003212g1232";
int result;
bool append=true;
for (int i = 0; i < test.Length-1; i++)
{
if(!Int32.TryParse(test.Substring(i,i+1),out result))
{
//Not an integer
append = false;
}
}
心不是一個整數,你可以隨時通過串一氣呵成值。如果追加保持真,那麼該字符串是一個整數。這可能是一個更光滑的做法,但這應該起作用。
您可以使用正則表達式或Integer.TryParse,我更喜歡正則表達式檢查
使用正則表達式:
Dim reg as New RegEx("^\d$")
If reg.IsMatch(myStringToTest) Then
' Numeric
Else
' Not
End If
UPDATE:
你也可以使用LINQ來完成相同的任務,如果你在VB.Net 2008/2010做。
Dim isNumeric as Boolean = False
Dim stringQuery = From c In myStringToTest
Where Char.IsDigit(c)
Select c
If stringQuery.Count <> myStringToTest.Length Then isNumeric = False
正則表達式是更優雅的解決方案恕我直言。我們使用RE來處理大部分輸入驗證和數據清理。 – knslyr 2010-08-01 01:39:53
假設您正在查看相對較短的字符串,該字符串永遠不會大於最大Int32值,請使用Gage的解決方案。如果這是一個可變長度的,有時你可能溢出,使用正則表達式(System.Text.RegularExpressions
)
正則表達式針對只是數字檢查是相當常規:對正則表達式的一個很好的解釋^[0-9]+$
檢查here。
如果您不希望使用RegEx,請使用char.IsNumber
對每個字符進行簡單檢查。
您可以用All
擴展方法結合起來(在C#中,我不知道如何把它寫在VB.net):
string value = "78645655";
bool isValid = value.All(char.IsNumber);
退房等char
方法,如IsDigit
。
不幸的是VB不會讓你寫出優雅的東西。你最終會得到'value.All(Function(c)Char.IsNumber(c))' – 2013-03-13 18:59:21
2個緊湊的解決方案:
沒有LINQ:
Dim foo As String = "10004"
Array.Exists(foo.ToCharArray, Function(c As Char) Not Char.IsNumber(c))
隨着LINQ(只是VB.Net當量的另一個答案C#版本):
foo.All(Function(c As Char) Char.IsNumber(c))
在VB編碼.Net來檢查一個字符串是否只包含數字值。
If IsNumeric("your_text") Then
MessageBox.Show("yes")
Else
MessageBox.Show("no")
End If
負值未被提及,其中Integer.TryParse
會接受。
我更喜歡UInteger.TryParse
,它會拒絕一個負數。然而,存在的情況下需要額外的校驗值與「+」開頭:
Dim test As String = "1444"
Dim outTest As UInteger
If Not test.StartsWith("+") AndAlso UInteger.TryParse(test, outTest) Then
MessageBox.Show("It's just digits!")
End If
或ULong.TryParse
爲更大的數字。
- 1. 檢查「在字符串vb.net
- 2. 檢查字符串中的唯一字符(java)
- 3. IsDouble檢查Vb.net中的字符串?
- 4. 字符串唯一字符
- 5. Python字符串操作 - 在許多字符串中查找唯一的數字
- 6. 檢查字符串是一個數字
- 7. 如何檢查字符串是UNICODE vb.net
- 8. vb.net如何檢查一個字符串是否有某個字
- 9. 檢查C++中的另一個字符串中的字符串
- 10. 檢索一個字符串中的唯一值數
- 11. 字符串中的唯一字
- 12. 計算字符串中的唯一字
- 13. 計算字符串中的唯一字
- 14. 檢查一個字符串是否都是唯一的字符,空格除外
- 15. 在Python中檢查字符串數字
- 16. Python:檢查字符串中的字符
- 17. 檢查字符串中的字符
- 18. 檢查字符串的子字符串
- 19. 在Oracle中檢查字符串中的數字和字符11G
- 20. 在VBScript中檢查字符串中的非數字字符
- 21. 按位檢查字符串的操作是唯一的
- 22. 要檢查一個字符串是否具有所有唯一字符在C + +
- 23. VB.NET查詢字符串
- 24. 查找字符串VB.NET
- 25. 檢查字符串的數字
- 26. 查找所有R唯一字符串
- 27. 檢查字符串數組
- 28. 檢查字符串函數
- 29. 檢查字符串數組
- 30. 檢查字符串數組中的字符串C
定義數字字符?你只考慮0到9,還是十六進制字符? 0x87是否有效? – 2010-07-30 19:09:35
是隻有0-9我需要跟蹤 – Scott 2010-07-30 19:10:28
只有正數呢? – 2010-07-30 19:53:41