替换文本框中的文本而不使用替换功能

时间:2015-04-09 15:08:39

标签: vb.net visual-studio-2010 visual-studio

这更像是一个逻辑问题,我只需要了解如何最好地解决这个问题。

我试图在visual basic中这样做。我必须在文本框中,在文本框1中,我会有一些文本,如果它包含某些单词,我想用其他东西替换它,并在单击转换按钮后在文本框2中有新输出。

我知道使用内置的替换功能可以很容易地完成,但是我试图在没有替换功能的情况下完成它。

例如:

  

我想替换" fox"用"狗"

     

文本框1:快速的棕色狐狸跳过懒狗。

     

文本框2:快速的棕色狗跳过懒狗。

我让它使用下面的代码,但这仅适用于第一个实例。如何更改所有实例的代码。

String from InputText
    Dim S1 As String
    S1 = InputText.Text

    'Position of start of "Edge Computer"
    Dim pStart As Integer
    pStart = S1.IndexOf("Edge Computer")

    'Position of end of "Edge Computer"
    Dim pEnd As Integer
    pEnd = S1.IndexOf("r", pStart) + 1

    'Actual old name as string
    Dim strOld As String
    strOld = S1.Substring(pStart, 13)

    'New String for Output
    Dim S2 As String
    S2 = S1.Substring(0, pStart) & "3dg3" &      S1.Substring(pEnd)

    OutputText.Text = S2

由于

1 个答案:

答案 0 :(得分:1)

如果您不想使用替换,您可以使用子字符串来选择要替换的单词之前和之后的文本。

您没有发布任何代码,因此很难找到一个更适合您的示例

Dim NewText as String 
If textbox1.text.IndexOf("OldWord") > - 1 Then
    NewText = textbox1.text.Substring(0, textbox1.text.IndexOf("OldWord")) & "NewWord " & textbox1.text.Substring(textbox1.text.IndexOf("OldWord") + "Something".length, textbox1.text.length  ) 
   'Make sure you replacfe OldWold and NewWord to the specific text or variable 
End If

要使其适用于单词的所有实例,您只需要通过循环替换if

Dim NewText as String
Dim OldText as String = textbox1.text

While OldText.IndexOf("OldWord") > - 1
    NewText = OldText.Substring(0, OldText.IndexOf("OldWord")) & "NewWord " & OldText.Substring(OldText.IndexOf("OldWord") + "OldWord".length, OldText.length  ) 
    OldText = OldText.Substring(OldText.IndexOf("OldWord") + "OldWord".length, OldText.length)
   'Make sure you replace OldWold and NewWord to the specific text or variable 

End While

让我知道这是否有效