这更像是一个逻辑问题,我只需要了解如何最好地解决这个问题。
我试图在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
由于
答案 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
让我知道这是否有效