任何带有后缀 U u L l UL Ul uL ul LU Lu lU lu .NET 的有效 TryParse 或 IsNumeric
Any working TryParse or IsNumeric with suffix U u L l UL Ul uL ul LU Lu lU lu .NET
我如何检查字符串值是否为数字它似乎一直失败,因为它附加了一个后缀。
这就是我所说的后缀
https://msdn.microsoft.com/en-us/library/aa664674(v=vs.71).aspx
Dim value As String = "4294967295U"
If IsNumeric(value) Then
MsgBox "is number"
End If
Dim val as UInteger
If UInteger.TryParse(value, num) Then
MsgBox "is number also"
End If
当您在代码中将数值声明为常量时,会使用后缀 - 让编译器知道应该将该数字视为什么类型。这是必要的,因为 1
可能表示 int
、uint
、long
、ulong
、byte
等任何一个。
当您使用 TryParse
时没有必要,因为 class 您正在使用 TryParse
调用(UInteger
在您的情况下)已经知道什么您希望输入代表的类型。所以它应该只是数字,没有后缀。
感谢 Asad 的回答,这很好用
Dim value as String = "4294967295U"
value = value.TrimEnd(New Char() {"U", "u", "L", "l"})
If IsNumeric(value) Then
'Yes is number now :)
Else
'Boo!
End If
可能可以将其与 .ToLowerCase() 或 .ToUpperCase() 链接起来,以将其缩减为仅 2 个元素。
根据您的输入,您可能能够在进行检查之前清理任何已知的 prefixes/suffixes。查看您提供的单个示例,您可以使用 TrimEnd
删除尾随 U
s。
Dim knownSuffixes = New Char() {"U"c}
If IsNumeric(value.TrimEnd(knownSuffixes)) Then
MsgBox "is number"
End If
你应该注意这里的边缘情况。我不知道你在寻找什么样的输入。例如,1234UUUUUU
是无效输入吗?如果是这样,这会给你误报。
另一种可能更可靠的方法是使用正则表达式来准确指定预期的字符序列。
我如何检查字符串值是否为数字它似乎一直失败,因为它附加了一个后缀。
这就是我所说的后缀 https://msdn.microsoft.com/en-us/library/aa664674(v=vs.71).aspx
Dim value As String = "4294967295U"
If IsNumeric(value) Then
MsgBox "is number"
End If
Dim val as UInteger
If UInteger.TryParse(value, num) Then
MsgBox "is number also"
End If
当您在代码中将数值声明为常量时,会使用后缀 - 让编译器知道应该将该数字视为什么类型。这是必要的,因为 1
可能表示 int
、uint
、long
、ulong
、byte
等任何一个。
当您使用 TryParse
时没有必要,因为 class 您正在使用 TryParse
调用(UInteger
在您的情况下)已经知道什么您希望输入代表的类型。所以它应该只是数字,没有后缀。
感谢 Asad 的回答,这很好用
Dim value as String = "4294967295U"
value = value.TrimEnd(New Char() {"U", "u", "L", "l"})
If IsNumeric(value) Then
'Yes is number now :)
Else
'Boo!
End If
可能可以将其与 .ToLowerCase() 或 .ToUpperCase() 链接起来,以将其缩减为仅 2 个元素。
根据您的输入,您可能能够在进行检查之前清理任何已知的 prefixes/suffixes。查看您提供的单个示例,您可以使用 TrimEnd
删除尾随 U
s。
Dim knownSuffixes = New Char() {"U"c}
If IsNumeric(value.TrimEnd(knownSuffixes)) Then
MsgBox "is number"
End If
你应该注意这里的边缘情况。我不知道你在寻找什么样的输入。例如,1234UUUUUU
是无效输入吗?如果是这样,这会给你误报。
另一种可能更可靠的方法是使用正则表达式来准确指定预期的字符序列。