2

リッチ テキスト ボックス内の文字列を取得して、別の文字列に置き換えようとしています。

これがどのように機能するかというと、テキスト ボックスに 2 つの同じ文字が入力された場合、たとえば tt のように "tt" が "Ǿt" に置き換えられた場合、置換された文字列に t の 1 つが追加されます。2 つの同じ文字が入力された場合、最後に入力された文字列のみが操作されます。

このメソッドを使用して、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

これが私が思いついた方法です

        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)この例では、単一のインデックスだけでなく、0 から 2 までのすべてのインデックスをチェックする if ステートメントを取得する方法を教えてください。

于 2013-06-12T13:00:20.483 に答える