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() 函数是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

在vb net中,如何猎取和修改已选定的某一项的值?

vb6中的RtlMoveMemory ByVal a,在vb.net中应如何表达?

如何从 C++ 调用 VB.NET DLL(也调用函数 - 不仅仅是 DLL 文件)

VB.NET 中的 SQL 选择查询

vb.net 如何引用自定义类库

如何通过 VB.NET 修改 XML 中的 CData