2

我正在尝试在富文本框中获取一个字符串并用不同的字符串替换它们。

现在这应该如何工作的是,如果在文本框中输入两个相同的字符,例如 tt,“tt”将被替换为“Ǿt”,它会将其中一个 t 添加到替换的字符串中。如果输入了两个相同的字符,则仅处理最近输入的字符串。

我使用此方法读取了 RichTextBox 中的 LAST 字符串

Dim laststring As String = RichTextBox1.Text.Split(" ").Last

'hitting space bar breaks the operation so if i enter t t there will be no replacement

这是我使用的替换方法,它工作正常。

        if laststring  = "tt"
        RichTextBox1 .Text = RichTextBox1 .Text.Replace("tt", "Ǿt")

这种方法效率低下,因为我需要检查 id,所有字母都有双字母,如果我要使用这种方法,它会占用大量代码。

我怎样才能用更短的方法来完成这个?

4

3 回答 3

0

这里有一些代码可以让你朝着正确的方向前进......

有几种变体.Find,但您可能想查看该.Select方法。

    With RichTextBox1
        .Find("Don")
        .SelectedText = "Mr. Awesome"
    End With
于 2013-06-11T14:04:13.140 回答
0

这是我想出的一种方法

        Dim holdstring As String
    Dim doubleinstance() As String = {"bb", "tt", "uu"} '  array
    Dim curstring As String = RichTextBox1.Text.Split(" ").Last 
    If curstring = doubleinstance(0) And RichTextBox1.Text.EndsWith(doubleinstance(0)) Then
        holdstring = RichTextBox1.Text.Split(" ").Last.Length - 1 ' change to subtract 1 character from doubleinstance
        RichTextBox1.Text = RichTextBox1.Text.Replace(curstring, "Ǿt" + holdstring)

        MsgBox(curstring)
    End If

在哪里我有doubleinstance(0)如何让 if 语句不仅检查单个索引,而且在此示例中检查从 0 到 2 的所有索引?

于 2013-06-12T13:00:20.483 回答
0

您需要将该if then部分放在一个循环中。

Dim holdstring As String
Dim doubleinstance() As String = {"bb", "tt", "uu"} '  array
Dim curstring As String = RichTextBox1.Text.Split(" ").Last

For Each item As String In doubleinstance
    If RichTextBox1.Text.EndsWith(item) Then
        holdstring = RichTextBox1.Text.Split(" ").Last.Length - 1 ' change to subtract 1 character from doubleinstance
        RichTextBox1.Text = RichTextBox1.Text.Replace(curstring, "Ǿt" & holdstring)

        MsgBox(curstring)
    End If
Next item
于 2013-06-12T14:35:23.677 回答