VB.net编程的字母表

时间:2013-07-21 12:23:56

标签: vb.net

我有一个textbox2.text,我将其声明为字符串即myletters,我也有一个label36.text,我也将其声明为字符串即模式。

我只会在文本框中输入从“a”到“z”的字母,而且有一个标签36的原因是,当我再次输入相同的字母时,它会显示错误信息。

到目前为止,这是我的代码。

Imports System.Text.RegularExpressions

Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button3.Click
  Dim patterns As String
  patterns = Label36.Text
  Dim myletters As String
  myletters = TextBox2.Text
  Dim matches As MatchCollection = Regex.Matches(myletters, patterns)
  If Regex.IsMatch(patterns, myletters) Then
    MsgBox("You already typed this letter.")
  Else
    Label36.Text = Label36.Text + myletters + ","
  End If
End Sub

到目前为止,我的代码在顶部有什么用处,如果我已经再次输入相同的字母并且如果我没有放相同的字母则会显示错误。

示例输出:

设置A:a,b,c,d,e

现在这是我的问题。

1)如何在不使用逗号的情况下输入我的第一个字母?

例:
一个

但我的输出是
例如:
一个,

2)如何将文本框设置为仅输入1个字母的最大值?

3)我如何在正确的时间和格式中使用逗号?

示例1:
一个
例2:
的a,b

但我的例子是 例1:
一,
例2:
A,B,

4)如何将字母排列在正确的位置?

示例1:
A,Z

如果我输入“x”,则输出必须为

例2:
一个,X,Z

2 个答案:

答案 0 :(得分:1)

您要求进行相当多的更改,但或多或​​少容易:

“2)如何将文本框设置为只输入1个字母的最大值?”

TextBox2.MaxLength = 1

(或通过影响MaxLengthProperties Panel的{​​{1}}属性)

其他3个问题的答案是代码中Design View的更新版本。

else

答案 1 :(得分:1)

我建议你将字母存储在字符串数组而不是字符串中,如下所示:

Dim myLettersArray As String() = New String() {"a", "b", "c"}

通过使用String()作为类型,您可以遍历您的字母,如下所示:

For Each letter As String In myLettersArray
    ' Do something with letter
Next

要强制输入文本框(TextBox2)仅允许单个字符,那么您可以使用MaxLength设置的TextBox属性,如下所示:

TextBox2.MaxLength = 1

注意:有关详细信息,请参阅TextBox.MaxLength Property文档。

要对您的信件进行排序(读取:按字母顺序排列),您只需拨打Sort(),就像这样:

Array.Sort(testArray, StringComparer.InvariantCulture)

最后,您输出的逗号问题源于您附加逗号而不是在逗号前加上逗号,如下所示:

Dim counter As Integer = 1
For Each letter As String In myLettersArray
    ' Check if this is the first letter
    If counter = 1 Then
        Label36.Text = Label36.Text & letter
    Else
        Label36.Text = Label36.Text & ", " & letter
    End If

    counter = counter + 1
Next