Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在VB 2010上检查输入的数据是字符串还是数字_Vb.net - Fatal编程技术网

Vb.net 在VB 2010上检查输入的数据是字符串还是数字

Vb.net 在VB 2010上检查输入的数据是字符串还是数字,vb.net,Vb.net,我写了一个程序来检查输入ID的格式,如果格式不正确,我将打印“无效” 格式为:“Dog123”。第一个字母是大写字母,第二个两个小写字母和第三个数字 我在VisualBasic2010上写了一篇简短的文章,只是为了用ASCII值检查第一个字母,但它不起作用 Sub Main() Dim ID As String Dim FL As String Dim CORRECT As Boolean CORRECT = 0

我写了一个程序来检查输入ID的格式,如果格式不正确,我将打印“无效”

格式为:“Dog123”。第一个字母是大写字母,第二个两个小写字母和第三个数字

我在VisualBasic2010上写了一篇简短的文章,只是为了用ASCII值检查第一个字母,但它不起作用

  Sub Main()
        Dim ID As String
        Dim FL As String
        Dim CORRECT As Boolean
        CORRECT = 0
        Console.WriteLine("Enter Identitfication")
        ID = Console.ReadLine
        FL = Left(ID, 1)
        If FL = FL >= Asc("A") Then
            If FL = FL <= Asc("Z") Then
                CORRECT = 1
                Console.WriteLine("Valid")
            End If
        End If
        If CORRECT = 0 Then
            Console.WriteLine("Invalid")
        End If
        Console.ReadKey()
    End Sub
Sub-Main()
作为字符串的Dim ID
作为字符串的Dim FL
将Dim校正为布尔值
正确=0
Console.WriteLine(“输入标识”)
ID=Console.ReadLine
FL=左侧(ID,1)
如果FL=FL>=Asc(“A”),则
如果FL=FL
  • 为什么使用布尔数据类型作为整数您应该这样使用它

    正确的

  • 您可以将嵌套的if替换为,这样代码就可以

    如果FL>=Asc(“A”)且同样为FL
  • 为什么使用布尔数据类型作为整数您应该这样使用它

    正确的

  • 您可以将嵌套的if替换为,这样代码就可以


    如果FL>=Asc(“A”)并且FL也使用Char.Is方法尝试以下操作,前三个字符使用Char.Is方法,后三个字符使用Integer.TryParse验证是否有int

    Module Module1
        Sub Main()
            Dim ID As String
            Console.WriteLine("Enter Identitfication")
            ID = Console.ReadLine
            If ID.Length = 6 Then
                If Char.IsUpper(ID(0)) AndAlso
                    Char.IsLower(ID(1)) AndAlso
                    Char.IsLower(ID(2)) AndAlso
                    Integer.TryParse(ID.Substring(3, 3), Nothing) Then
    
                    Console.WriteLine("Good to go")
    
                Else
                    Console.WriteLine("Bad 2")
                End If
            Else
                Console.WriteLine("Bad 1")
            End If
            Console.ReadKey()
        End Sub
    
    End Module
    

    尝试以下使用Char.Is方法处理前三个字符,然后使用Integer.TryParse验证最后三个字符是否有int

    Module Module1
        Sub Main()
            Dim ID As String
            Console.WriteLine("Enter Identitfication")
            ID = Console.ReadLine
            If ID.Length = 6 Then
                If Char.IsUpper(ID(0)) AndAlso
                    Char.IsLower(ID(1)) AndAlso
                    Char.IsLower(ID(2)) AndAlso
                    Integer.TryParse(ID.Substring(3, 3), Nothing) Then
    
                    Console.WriteLine("Good to go")
    
                Else
                    Console.WriteLine("Bad 2")
                End If
            Else
                Console.WriteLine("Bad 1")
            End If
            Console.ReadKey()
        End Sub
    
    End Module
    

    对于这种验证,您应该查看RegEx(正则表达式)。您可以像以前一样构建一个模式:

    第一个字母是大写字母,第二个两个小写字母和第三个数字

    然后,根据它测试字符串


    这里有一个工具来测试您的模式:

    对于这种验证,您应该查看RegEx(正则表达式)。您可以像以前一样构建一个模式:

    第一个字母是大写字母,第二个两个小写字母和第三个数字

    然后,根据它测试字符串


    这里有一个工具来测试您的模式:

    我将使用正则表达式来确定我的id是否匹配

    您必须
    导入System.Text.RegularExpressions

    Sub Main()
    
        Console.WriteLine("Enter Identitfication")
        Dim ID As String = Console.ReadLine
    
        If Regex.IsMatch(ID, "[A-Z]{1}[a-z]{2}\d{3}") Then
            Console.WriteLine("Valid")
        Else
            Console.WriteLine("Invalid")
        End If
    
        Console.ReadKey()
    
    
    End Sub
    
    上述正则表达式将进行检查以确保:

  • 位置1处的字符匹配[A-Z],大写
  • 接下来的两个字符匹配[a-z],小写
  • 接下来的三个字符是数字[\d]

  • 我会使用正则表达式来确定我的id是否匹配

    您必须
    导入System.Text.RegularExpressions

    Sub Main()
    
        Console.WriteLine("Enter Identitfication")
        Dim ID As String = Console.ReadLine
    
        If Regex.IsMatch(ID, "[A-Z]{1}[a-z]{2}\d{3}") Then
            Console.WriteLine("Valid")
        Else
            Console.WriteLine("Invalid")
        End If
    
        Console.ReadKey()
    
    
    End Sub
    
    上述正则表达式将进行检查以确保:

  • 位置1处的字符匹配[A-Z],大写
  • 接下来的两个字符匹配[a-z],小写
  • 接下来的三个字符是数字[\d]

  • 这个逻辑应该是什么:
    如果FL=FL>=Asc(“A”)
    字符串怎么可能大于或小于某个值?Why=首先,然后>=?在这行上放一个断点`如果FL=FL>=Asc(“a”),然后`看看它是否在做你认为它在做的事情。我很抱歉听起来像个白痴,但我刚刚开始编程,我不知道我在做什么。断点又是什么?这个逻辑应该是什么:
    如果FL=FL>=Asc(“a”)
    字符串怎么能大于或小于某个值?Why=首先,然后>=?在这行上放一个断点`如果FL=FL>=Asc(“a”),然后`看看它是否在做你认为它在做的事情。我很抱歉听起来像个白痴,但我刚刚开始编程,我不知道我在做什么。还有什么是断点?我知道我还必须检查其余的断点。我只是想检查一下第一个,看看我做得对不对。但谢谢你,我真的建议你用正则表达式来做这个。@CFrozenDeth。我认为正则表达式是最好的选择,但对初学者来说不是。如果我知道正则表达式是什么,也许我会使用它。我做了所有的修改,我只是变得无效,不管我输入了什么@abdallahesami,我知道我也必须检查其余的。我只是想检查一下第一个,看看我做得对不对。但谢谢你,我真的建议你用正则表达式来做这个。@CFrozenDeth。我认为正则表达式是最好的选择,但对初学者来说不是。如果我知道正则表达式是什么,也许我会使用它。我做了所有的修改,我只是变得无效,不管我输入了什么@abdallahesam