小程序---把一段文字中的#转换成*--vb版

首先创建两个textbox文本框(本程序未改name)和一个按钮,程序预期达到的效果是在文本一中输入一段带#的任意文本,点击按钮,将转化后的文本显示在textbox2中

预期目的实现

以下是代码

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim str As String = TextBox1.Text '键盘输入“123#456#”
        TextBox2.Text = Y(str)
    End Sub
    Public Shared Function Y(ByVal Str As String) As String
        '定义一个SQLstr对象,最后返回被转换的文本
        Dim SQLstr As String
        '本人喜欢给新定义的对象赋值,不过不复制也不影响
        SQLstr = ""
        '对传过来的文本进行简单的判断,如果文本为空,则返回一个空值
        If Str = "" Then
            Return ""
        End If
        '定义一个变量p,用于记录一段文本中要转变的符号的第一次出现的坐标
        Dim p As Integer
        '将文本中的“#”坐标赋值给p
        'indexof("s" , n) 有两个参数,第一个参数s的意思是字符串中你要查找的字符,本例中就是“#”。
        '第二个参数n的意思是从字符串中第多少位开始检索,0就表示从字符串第一位开始检索“#”的坐标, 0可以省略。
        '如果没有检索出要查找的字符,则返回-1
        p = Str.IndexOf("#", 0)
        '没有需要转换的特殊符号的时候
        '考虑到文本可能有不止一个要转变的特殊符号,所有先用p做一个判断,文本中有特殊符号,则一定p>=0
        If p = -1 Then
            'p=-1表示文本中没有要转变的字符,则直接输出文本即可
            Return Str
        Else
            '这段代码的意思是,截取str(123#456#)从0开始,截取长度为p的所有数字,赋值给SQLstr
            SQLstr = Str.Substring(0, p) 'sqlstr=123
            '定义一个变量q,用于记录一段文本中要转变的符号的第n次出现的坐标
            Dim q As Integer
            While p >= 0
                '从第一个“#”后,即p+1=4的坐标开始检索下一个“#”的坐标,赋值给q,“123#456#” 即q=7
                q = Str.IndexOf("#", p + 1)
                '做一个判断,如果第一个“#”后面还有“#”,则q一定>=0,如果没有,则q=-1(前面说过原因)
                If q >= 0 Then
                    'SQLstr(123) =  SQLstr(123) & "*"(将第一个#转换) & Str(123#456#)从第4(p+1)位开始截取,切取长度位3(7-3-1)即Str.Substring(456)
                    'SQLstr= 123+"*"+456
                    SQLstr = SQLstr & "*" & Str.Substring(p + 1, q - p - 1)
                    '将q(7)赋值给p,从新循环
                    p = q
                Else
                    '没有"#"的情况,让q等于字符串的长度(8)
                    q = Str.Length
                    '同上
                    SQLstr = SQLstr & "*" & Str.Substring(p + 1, q - p - 1)
                    '设置条件,跳出循环
                    p = -1
                End If
            End While
            '得到转化后的字符串,输出
            Return SQLstr
        End If
    End Function
End Class

emmmm,写了很多注释,,,也是为了以后我看一眼就能想起来,,,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值