vb 删除字符串中再次出现及相邻重复的字母,大写与小写为不同字母。

shaddockk 2018-04-14 01:17:02


作业题,求问大佬
...全文
1891 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_43499598 2018-10-23
  • 打赏
  • 举报
回复
你好楼主 你是不是也上的xc的vb?请问他的作业你还留着吗?如果可以的话发给我好吗 我邮箱beikegz@126.com
脆皮大雪糕 2018-04-16
  • 打赏
  • 举报
回复
目测是典型作业题
of123 2018-04-16
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
    Label1 = Remove_repeated_characters(Text1.Text)
End Sub

Private Sub Command2_Click()
    Label1 = Remove_continuous_characters(Text1.Text)
End Sub

Private Sub Form_Load()
    Text1 = "FuDdan, fuuDdaaa, FFuuDDDaaa"
End Sub

Private Function Remove_repeated_characters(ByVal strSource As String) As String
    Dim i As Long, j As Long, tmp As String, strResult As String

    strResult = Left(strSource, 1)
    For i = 2 To Len(strSource)
        tmp = Mid(strSource, i, 1)
        
        If tmp = "," Or tmp = "" Then
            strResult = strResult & tmp
        Else
            For j = 1 To Len(strResult)
                If tmp = Mid(strResult, j, 1) Then Exit For
            Next j
            If j > Len(strResult) Then strResult = strResult & tmp
        End If
    Next i
    
    Remove_repeated_characters = strResult
End Function

Private Function Remove_continuous_characters(ByVal strSource As String) As String
    Dim i As Long, strResult As String

    strResult = Left(strSource, 1)
    For i = 2 To Len(strSource)
        If Mid(strSource, i, 1) <> Mid(strSource, i - 1, 1) Then strResult = strResult & Mid(strSource, i, 1)
    Next i
    
    Remove_continuous_characters = strResult
End Function
赵4老师 2018-04-15
  • 打赏
  • 举报
回复
正则表达式速查 正则表达式举例 正则表达式学习 (4页A4纸)http://download.csdn.net/detail/zhao4zhong1/1808549
舉杯邀明月 2018-04-14
  • 打赏
  • 举报
回复
我没安装 .NET的编程环境,给你一段VB6代码参考。 这个“语法”跟 VB.NET有些不同:  比如 Mid( )函数,你在 .NET中就可以用 “字符串.SubString”之类的代替。  具体细节我不清楚,反正在开发环境下都是“一看就知道”的。不同之处你自己修改。
Option Explicit

Private Sub Command1_Click()
   Dim strText As String
   Dim strTemp As String
   Dim strChar As String

   strTemp = Text1.Text
   strText = ""
   Do
      If ("" = strTemp) Then Exit Do
      strChar = Mid$(strTemp, 1, 1)
      strText = strText & strChar
      strTemp = Replace(strTemp, strChar, "")
   Loop
   Me.Cls
   Me.Print strText     ' 你的作业中是赋值给某 Label
End Sub

Private Sub Command2_Click()
   Dim strText As String
   Dim strChar As String
   Dim i&, p&, w As Long
   
   strText = Text1.Text
   w = Len(strText)
   p = 0&:  i = 1&
   Do
      If (i > w) Then Exit Do
      strChar = Mid$(strText, i, 1)
      For i = 1& + i To w
         If (strChar <> Mid$(strText, i, 1)) Then Exit For
      Next
      p = 1& + p
      Mid$(strText, p) = strChar
   Loop
   Me.Cls
   Me.Print Left$(strText, p) ' 你的作业中是赋值给某 Label
End Sub
shaddockk 2018-04-14
  • 打赏
  • 举报
回复
可以具体一点么
shaddockk 2018-04-14
  • 打赏
  • 举报
回复
可以具体一点么
  • 打赏
  • 举报
回复
第一个问题 左边开始一次取一个字符进行 replace就好 第二个 得逐个字符比较了
舉杯邀明月 2018-04-14
  • 打赏
  • 举报
回复
引用 9 楼 shaddockk 的回复:
[quote= 引用] . . . . . . . .
这样是可以的,但是最后导出的结果,比如输入的是rrwwrrt,输出的是rwt[/quote] 难道不应该是这个结果吗!
shaddockk 2018-04-14
  • 打赏
  • 举报
回复
引用 8 楼 Chen8013 的回复:
[quote=引用 7 楼 shaddockk 的回复:] [quote=引用 6 楼 Chen8013 的回复:] [quote=引用 5 楼 shaddockk 的回复:] 为什么这样写label1并没有结果?
最后那句,是要 strText 这个变量,不是 strTemp !!! [/quote] 改成了也是没有结果。。。[/quote] 不可能,除非你的 TextBox1 本来就是“空的”! 另外,自己在 Do循环之前设置一个断点,然后单步跟踪运行一下,看看究竟是哪儿“不正确”啊。 [/quote]这样是可以的,但是最后导出的结果,比如输入的是rrwwrrt,输出的是rwt
舉杯邀明月 2018-04-14
  • 打赏
  • 举报
回复
引用 7 楼 shaddockk 的回复:
[quote=引用 6 楼 Chen8013 的回复:] [quote=引用 5 楼 shaddockk 的回复:] 为什么这样写label1并没有结果?
最后那句,是要 strText 这个变量,不是 strTemp !!! [/quote] 改成了也是没有结果。。。[/quote] 不可能,除非你的 TextBox1 本来就是“空的”! 另外,自己在 Do循环之前设置一个断点,然后单步跟踪运行一下,看看究竟是哪儿“不正确”啊。
shaddockk 2018-04-14
  • 打赏
  • 举报
回复
引用 6 楼 Chen8013 的回复:
[quote=引用 5 楼 shaddockk 的回复:] 为什么这样写label1并没有结果?
最后那句,是要 strText 这个变量,不是 strTemp !!! [/quote] 改成了也是没有结果。。。
shaddockk 2018-04-14
  • 打赏
  • 举报
回复


为什么这样写label1并没有结果?
舉杯邀明月 2018-04-14
  • 打赏
  • 举报
回复
引用 5 楼 shaddockk 的回复:
为什么这样写label1并没有结果?
最后那句,是要 strText 这个变量,不是 strTemp !!!

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧