如何使大小写字母都起作用?

时间:2019-01-09 13:08:26

标签: vb.net

我需要在这里完成一些大学作业(是的,他们在2019年教我们vb.net)。

因此,我需要创建一个程序,该程序将从用户生成的文本中获取每个字符,并将其更改为等于“ Chr(Asc(OriginalCharacter)+ N)”的字符。

例如,如果该数字导致的字符大于字母表的最后一个字符,则应一直返回到其开头并计数(假设为小写)(Asc(OriginalCharacter)+ N-122)。

对于任何给定的数字N,我都已经成功地做到了,但是只有当我制作OriginalText.ToLower时,我才能做到

这是我的代码(变量和内容是用葡萄牙语编写的):

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim Frase As String = InputBox("Frase: ")
    Dim NumChars As Integer = Len(Frase)
    Dim N As Integer = InputBox("Numero: ")
    Dim NovaFrase As String = ""
    Dim CharNum As Integer = 0
    Dim temp As Integer = 0

    Frase = Trim(Frase.ToLower)

    For i = 1 To NumChars
        CharNum = 0
        If Asc(Mid(Frase, i, 1)) = 32 Then
            CharNum = Asc(Mid(Frase, i, 1))
            NovaFrase = NovaFrase & Chr(CharNum)
        ElseIf Asc(Mid(Frase, i, 1)) + N >= 97 Then
            CharNum = Asc(Mid(Frase, i, 1)) + N
            'MsgBox("charnum: " & CharNum)
            While CharNum > 122
                temp = CharNum - 122
                '   MsgBox("temp: " & temp)
                CharNum = 96 + temp
                '  MsgBox("charnum: " & CharNum)
            End While
        End If
        NovaFrase = NovaFrase & Chr(CharNum)
        MsgBox(NovaFrase)
    Next
End Sub

此外,如果您能就我可以做的更好的事情给我反馈,我将不胜感激:)

学习我的决赛... -_-

P.S .:回答时,请记住,我没有参加任何计算机科学专业课程,而是管理工程学:)

1 个答案:

答案 0 :(得分:0)

查看ascii table。您会看到小写字母是从97到122。您正确地完成了这一部分。然后,您会注意到大写字母是65到90。所以您只需要处理这些大写字母即可。

Dim currentCharacter As Integer = Asc(Mid(Frase, i, 1))

If currentCharacter >= 97 AndAlso currentCharacter <= 122 Then
  ' ...
Else If currentCharacter >= 65 AndAlso currentCharacter <= 90 Then
  ' ...
End If

此外,VB.NET与VB完全不同。这是一种非常好的语言,并且会在2019年进行更新。您使用的许多方法并不是真正的vb.net,而是旧vb的一部分。