VB.NET 中的 Val() 函数是如何工作的?
Posted
技术标签:
【中文标题】VB.NET 中的 Val() 函数是如何工作的?【英文标题】:How does the Val() function in VB.NET work? 【发布时间】:2015-03-19 14:34:13 【问题描述】:我在 VB.NET 中有一个任务,目前我被困住了。希望得到一些帮助。
问题是这样的:您在文本框中输入随机字符,例如 12ab3c4d5efgh,然后单击按钮,它必须将文本框中的字符排序为 2 个单独的标签,具体取决于“字符”是否是数字或字母。因此,继续该示例,标签 1 必须显示“12345”,标签 2 必须显示“abcdefgh”。我希望我说得够清楚。
我被要求使用 Val() 函数,但我真的不知道。有人可以帮忙吗? :D
【问题讨论】:
如果您需要有关Val()
的帮助,请查看此处:msdn.microsoft.com/library/k7beh1x9(v=vs.90).aspx
Val 将返回 12345,它只是将数字字符取出并将它们转换为 int。您可以他们将其转换回字符串并使用它来过滤原始字符串。不知道为什么有人会打扰,正确地解决问题会容易得多,也更容易理解。
@TonyHopkinson,(Val("12ab3c4d5efgh")
返回12.0
。
嗯,少用是不是……
【参考方案1】:
这将创建一个带有数字的字符串和一个带有字母的字符串。非数字或字母的字符将被忽略。
Dim chars As String = "12ab3c4d5efgh"
Dim nums As String = chars.Where(Function(c) Char.IsDigit(c)).ToArray
Dim lets As String = chars.Where(Function(c) Char.IsLetter(c)).ToArray
【讨论】:
我在考虑那些行,但我是一个 C# 男孩,所以我正要查找语法。【参考方案2】:如果您必须使用Val()
,则可以这样做。但要小心:Val("0")
也会返回 0
。
Dim numbers As String = String.Empty
Dim letters As String = String.Empty
Dim sourceString As String = "12ab3c4d50efgh"
For Each c As Char In sourceString
If Val(c) = 0 And c <> "0" Then letters &= c Else numbers &= c
Next
Console.WriteLine("Numbers: " & numbers)
Console.WriteLine("Letters: " & letters)
Console.ReadKey()
【讨论】:
以上是关于VB.NET 中的 Val() 函数是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章
vb6中的RtlMoveMemory ByVal a,在vb.net中应如何表达?