【问题标题】:How does Visual Basic .NET differentiate between a String and Integer with a user inputVisual Basic .NET 如何通过用户输入区分字符串和整数
【发布时间】:2017-05-29 16:00:21
【问题描述】:

我试图弄清楚如何创建一个无限循环来验证用户输入是一个字符串。然而,我发现当我通过输入数字来测试程序时,控制台会将字符串视为输入。你如何纠正这个问题?

顺便说一句,这是我正在处理的代码:

 Dim input As Object

        Do
            Try
                input = Console.ReadLine()
            Catch
                Console.WriteLine("Error - Input was Invalid")
                input = Console.ReadLine()
            End Try
        Loop Until TypeOf input Is String

【问题讨论】:

  • 字符串几乎是通用的。所有用户输入类型(整数、实数、日期等)都是有效的字符串。
  • How does Visual Basic .NET differentiate - 它没有。 Console.ReadLine 返回一个字符串。
  • 输入 is 是一个字符串,如果您费心阅读ReadLine 的文档,您就会知道...
  • @Stephen ReadLine 总是返回一个字符串。如果您想知道字符串是否是数字的表示,那么您可以使用 Integer.TryParse。
  • 如果用户输入一个整数,你的代码仍然会得到一个字符串。看来,我不是那个“不明白”的人——尤其是看到您接受了与我链接到的帖子中的答案相同的答案。

标签: string vb.net visual-studio loops exception


【解决方案1】:
Dim i As Integer
If Integer.TryParse(Console.ReadLine(),i)
  'Good to go
End If

【讨论】:

  • 你知道有没有办法用字符串做到这一点
  • 那是字符串的解决方案。
【解决方案2】:

函数 Console.ReadLine() 将始终返回一个字符串值(或什么都不返回,在其他语言中等于 null)。

所以,如果你想转换成整数,你可以使用:

Convert.ToInt32(Console.ReadLine())

如果 Console.ReadLine() 不是整数,它会抛出 异常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2016-07-08
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多