VB.NET 发电机故障
VB.NET Generator Troubles
我目前正在用 Visual Basic 2008 编写一个 UUID 生成器,我得到了它来生成一个 UUID,但是没有-我在其中尝试了所有方法,但似乎没有任何效果我一直在网上寻找,但没有出现解决方案,可以有人帮帮我吗?所有代码都在下面,也许有人能弄明白。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = GenerateRandomString(8 + 4 + 4 + 4 + 12, False)
End Sub
Public Function GenerateRandomString(ByRef len As Integer, ByRef upper As Boolean) As String
Dim rand As New Random()
Dim allowableChars() As Char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ0123456789".ToCharArray()
Dim final As String = String.Empty
For i As Integer = 0 To len - 1
final += allowableChars(rand.Next(allowableChars.Length - 1))
Next
Return IIf(upper, final.ToUpper(), final)
End Function
End Class
Guid structure NewGuid 方法可以以多种可能的方式生成输出字符串,并且它的输出可能比编写您自己的生成器更独特
Sub Main
Dim g = Guid.NewGuid()
Console.WriteLine(g.ToString("N")) ' out = 87f1778f4e2d4db1951fbc48ed9eb722
Console.WriteLine(g.ToString("D")) ' out = 87f1778f-4e2d-4db1-951f-bc48ed9eb722
Console.WriteLine(g.ToString("P")) ' out = (87f1778f-4e2d-4db1-951f-bc48ed9eb722)
Console.WriteLine(g.ToString("B")) ' out = {87f1778f-4e2d-4db1-951f-bc48ed9eb722}
Console.WriteLine(g.ToString("X")) ' out = {0x87f1778f,0x4e2d,0x4db1,{0x95,0x1f,0xbc,0x48,0xed,0x9e,0xb7,0x22}}
End Sub
所以,如果我理解你的要求,你需要 ToString("N") 格式
实际上必须按照@Steve 的回答去做,但是为了学习。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim gen = GenerateRandomString(32, False)
TextBox1.Text = Regex.Replace(gen, "(.{8})(.{4})(.{4})(.{4})(.{4})(.{12})", "-----")
End Sub
Public Function GenerateRandomString(ByRef len As Integer, ByRef upper As Boolean) As String
Dim rand As New Random()
Dim allowableChars() As Char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ0123456789".ToCharArray()
Dim final As String = String.Empty
For i As Integer = 0 To len - 1
final += allowableChars(rand.Next(allowableChars.Length - 1))
Next
Return IIf(upper, final.ToUpper(), final)
End Function
End Class
你为什么自己做?您可以改用框架:
Guid.NewGuid.ToString
然后使用 replace()
删除不需要的“-”
我目前正在用 Visual Basic 2008 编写一个 UUID 生成器,我得到了它来生成一个 UUID,但是没有-我在其中尝试了所有方法,但似乎没有任何效果我一直在网上寻找,但没有出现解决方案,可以有人帮帮我吗?所有代码都在下面,也许有人能弄明白。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = GenerateRandomString(8 + 4 + 4 + 4 + 12, False)
End Sub
Public Function GenerateRandomString(ByRef len As Integer, ByRef upper As Boolean) As String
Dim rand As New Random()
Dim allowableChars() As Char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ0123456789".ToCharArray()
Dim final As String = String.Empty
For i As Integer = 0 To len - 1
final += allowableChars(rand.Next(allowableChars.Length - 1))
Next
Return IIf(upper, final.ToUpper(), final)
End Function
End Class
Guid structure NewGuid 方法可以以多种可能的方式生成输出字符串,并且它的输出可能比编写您自己的生成器更独特
Sub Main
Dim g = Guid.NewGuid()
Console.WriteLine(g.ToString("N")) ' out = 87f1778f4e2d4db1951fbc48ed9eb722
Console.WriteLine(g.ToString("D")) ' out = 87f1778f-4e2d-4db1-951f-bc48ed9eb722
Console.WriteLine(g.ToString("P")) ' out = (87f1778f-4e2d-4db1-951f-bc48ed9eb722)
Console.WriteLine(g.ToString("B")) ' out = {87f1778f-4e2d-4db1-951f-bc48ed9eb722}
Console.WriteLine(g.ToString("X")) ' out = {0x87f1778f,0x4e2d,0x4db1,{0x95,0x1f,0xbc,0x48,0xed,0x9e,0xb7,0x22}}
End Sub
所以,如果我理解你的要求,你需要 ToString("N") 格式
实际上必须按照@Steve 的回答去做,但是为了学习。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim gen = GenerateRandomString(32, False)
TextBox1.Text = Regex.Replace(gen, "(.{8})(.{4})(.{4})(.{4})(.{4})(.{12})", "-----")
End Sub
Public Function GenerateRandomString(ByRef len As Integer, ByRef upper As Boolean) As String
Dim rand As New Random()
Dim allowableChars() As Char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ0123456789".ToCharArray()
Dim final As String = String.Empty
For i As Integer = 0 To len - 1
final += allowableChars(rand.Next(allowableChars.Length - 1))
Next
Return IIf(upper, final.ToUpper(), final)
End Function
End Class
你为什么自己做?您可以改用框架:
Guid.NewGuid.ToString
然后使用 replace()
删除不需要的“-”