【问题标题】:VB.NET Windows Forms for each space in string字符串中每个空格的 VB.NET Windows 窗体
【发布时间】:2011-12-20 01:43:55
【问题描述】:

嘿,我有这个代码

Dim RandomNumber As New Random()
Dim msg As String = "My name is Nick from Neptune"
For each space as char in msg
msg = msg.replace(" ", RandomNumber.Next(0, 33))
Next

但它不起作用。 有人能帮我吗? 最后字符串应该是这样的:

My12name455is22Nick88from66Neptune

提前感谢我的英语。

【问题讨论】:

    标签: windows vb.net winforms


    【解决方案1】:

    我把它改成工作了,我很抱歉:

    Option Infer On
    
    Module Module1
    
    Sub Main()
        Dim RandomNumber As New Random()
        Dim msg As String = "My name is Nick from Neptune"
        Dim newmessage As String = ""
        Dim d = msg.Split(" ").ToList()
    
        For Each t In d
            newmessage = newmessage & Convert.ToString(t) & RandomNumber.[Next](0, 33).ToString()
        Next
    
        Console.WriteLine(newmessage)
    End Sub
    

    结束模块

    【讨论】:

    • @KreepN 你的比我的优雅得多。我认为您的问题是 Vb 没有 var 尝试改用 Object。
    • 已修复。我主要用 c# 编写,所以这是一个诚实的错误。
    • 感谢所有帮助过我的人!!!感谢 KreepN,感谢马克霍尔!它正在工作,谢谢!我已经使用了 KreepN 解决方案:d 再次感谢,我一直在寻找 3 天的答案,最终找到了一个。对不起我的英语。
    • 很高兴我能帮上忙。你的英文其实还不错!我得到了你想要做的事情,而不必多读一遍。干杯。
    【解决方案2】:

    您所写的内容存在一些问题。主要的是 Message.Replace 方法将用生成的第一个随机数替换字符串中的所有空格。尝试在空格所在的位置拆分字符串,然后将它们与中间的随机数重新连接。像这样的东西。

    Dim RandomNumber As New Random()
    Dim msg As String = "My name is Nick from Neptune"
    Dim temp = msg.Split(CChar(" "))
    Dim first As Boolean = True
    
    For Each s As String In temp
        If first Then
            msg = s
        Else
            msg = msg + RandomNumber.Next(0, 33).ToString + s
        End If
        first = False
    Next
    

    【讨论】:

    • 第二个循环应该是for each循环(因为这里不需要索引)。一旦你引入一个布尔变量来检查我们是否在循环的第一次(或最后一次)迭代中,第一个循环就可以合并到第二个循环中。
    • 感谢 Mark Hall 的快速答复
    • @KonradRudolph 你是对的。眼睛看起来好多了
    • @Mark 但是现在它的效率很低,因为它必须在每个循环中执行一个字符串比较。您可以改为使用变量first(即在第一次循环运行时设置为False)并用随机数前缀所有非第一个片段。
    猜你喜欢
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 2011-03-09
    • 1970-01-01
    相关资源
    最近更新 更多