这是我第一次在StackOverflow寻求帮助。
我一直在努力开发一个允许随机字符串生成的项目。虽然它有效,但我试图找出如何在生成一定数量的字符后添加特殊字符。
这是我的代码:
Public Class Form1
Dim pool As String = ""
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
pool = ""
If CheckBox1.Checked = True Then
pool = pool & "0123456789"
End If
If CheckBox2.Checked = True Then
pool = pool & "abcdefghijklmnopqrstuvwxyz"
End If
If CheckBox3.Checked = True Then
pool = pool & "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
End If
Dim count = 1
Result.Text = ""
Dim cc As New Random
Dim strpos = ""
While count <= Length.Text
strpos = cc.Next(0, pool.Length)
Result.Text = Result.Text & pool(strpos)
count = count + 1
End While
End Sub
End Class
现在,我可以生成字符串,但我正在寻找如何添加连字符。例如,当字符串以二十五个字符生成时,我得到“XikclCwXrPBd8RL35oaoN5LNW”。我无法弄清楚的是,如何在每个第五个字符添加连字符,它看起来像这样,“Xikcl-CwXrP-Bd8RL-35oao-N5LNW。”
如果我要添加每五(或任何自定义数量)字符生成连字符的代码,我是否需要重新编写代码,或者解决我的问题的方法很简单?
谢谢,我希望这个问题不是太麻烦。
这是我项目的截图。 http://puu.sh/aEgus/0309527a1e.png 我没有“至少10个声望来发布图片。”
答案 0 :(得分:2)
如果您只是想要每隔5个字符添加它,您可以简单地在while循环中抛出一个if语句,检查count%5是否为0.如果是,请添加字符,添加到计数器,以及继续前进。
示例:
While count <= Length.Text
strpos = cc.Next(0, pool.Length)
If count MOD 5 = 0 Then
Result.Text = Result.Text & "-"
End If
Result.Text = Result.Text & pool(strpos)
count = count + 1
End While
答案 1 :(得分:1)
这应该可以解决问题
While count <= Length.Text
strpos = cc.Next(0, pool.Length)
Result.Text = Result.Text & pool(strpos)
If count MOD 5 = 0 And count < Length.Text Then
Result.Text = Result.Text & "-"
End If
count = count + 1
End While
我不确定VB语法是否合适,因为我以前从未编写过VB,但我确信你能够弄明白。它还需要在最后添加连字符。
答案 2 :(得分:0)
我现在无法测试它,但是一旦生成了随机字符串,就可以添加“ - ”字符串。在这种情况下,您不必更改现有代码。由您决定哪种解决方案更适合您的需求。
Dim pos As Integer = 3
While pos < finalString.length
finalString = finalString.insert(pos, "-")
pos = pos + 5
End While
基本上,这个解决方案使用VB.NET中字符串类的insert
方法,每四个字符添加“ - ”字符串。
同样,你必须自己测试一下:)