想要在 VB 6.0 中的特定位置替换一个字符
Want to replace one character at specific position in VB 6.0
wordString --> 填空词。
key-->字符被替换。
我也有密钥在 keyPos 中的位置,它是随机计算的
我正在做填空游戏。在这里我需要在随机位置创建空白。我正在使用 Replace(wordString, key, "_", , 1)
但这只是替换了第一次出现的情况。如果我的 wordString 有像 APPLE 这样的重复字母,它总是会替换第一个 P
我也想替换第二个 P。喜欢 AP_LE.
好的,这是 vb.net 而不是 vb6,但这里是::
你应该使用 word 方法而不是 character 方法:
Dim sentence as String = "My apple is red."
Dim wordsInSentence() as String = sentence.Split()
Dim Rnd as new Random
Dim wordToBlank as String = wordsInSentence(Rnd.next(0, wordsInSentence.length))
Dim blankedSentence as String = sentence.Replace(wordToBlank, "___")
并且 blankedSentence
将包含您的 sentence
并随机删除一个单词。
My ___ is red.
编辑:要改为空白字符串中的随机 字符 ,请随机化字符串中的字符索引,并且(如果它不是 space)空白:
Dim sentence as String = "My apple is red."
Dim Rnd as new Random
Dim index As single = Rnd.next(0, sentence.length)
While sentence.Substring(index,1) = " "
index = Rnd.next(0, sentence.length)
End While
Dim blankedSentence as String = sentence.Remove(index,1).Insert(index, "_")
并且 blankedSentence
包含您的 sentence
随机非 space 字母空白:
My ap_le is red.
这不是一个很好的方法,因为所有单词的所有字母(包括标点符号)都可以是空白字符。除此之外,它会让你得到你想要的。
VB6 版本:
Dim sentence as String
Dim index As Integer
Dim intUpperBound As Integer
Dim intLowerBound As Integer
sentence = "My apple is red."
intLowerBound = 1 'assuming the first character of the word
intUpperBound = Len(sentence)
Randomize 'initialize the random number generator
index = Int((intUpperBound - intLowerBound + 1) * Rnd) + intLowerBound
While Mid$(sentence, index, 1) = " "
index = Int((intUpperBound - intLowerBound + 1) * Rnd) + intLowerBound
Wend
Dim blankedSentence As String
blankedSentence = sentence
Mid(blankedSentence, index, 1) = "_" 'replace the current character at index with the new character
我自己找到了另一个解决方案。
它有3个文本框txtInput、txtOutput、txtKeyPos和一个命令按钮command1
代码:
Private Sub Command1_Click()
t1 = Left$(txtInput.Text, Int(txtKeyPos.Text) - 1)
t2 = Right$(txtInput.Text, (Len(txtInput.Text)) - Int(txtKeyPos.Text))
txtOutput.Text = t1 & "_" & t2
End Sub
这符合我的目的。
wordString --> 填空词。 key-->字符被替换。 我也有密钥在 keyPos 中的位置,它是随机计算的
我正在做填空游戏。在这里我需要在随机位置创建空白。我正在使用 Replace(wordString, key, "_", , 1)
但这只是替换了第一次出现的情况。如果我的 wordString 有像 APPLE 这样的重复字母,它总是会替换第一个 P
我也想替换第二个 P。喜欢 AP_LE.
好的,这是 vb.net 而不是 vb6,但这里是::
你应该使用 word 方法而不是 character 方法:
Dim sentence as String = "My apple is red."
Dim wordsInSentence() as String = sentence.Split()
Dim Rnd as new Random
Dim wordToBlank as String = wordsInSentence(Rnd.next(0, wordsInSentence.length))
Dim blankedSentence as String = sentence.Replace(wordToBlank, "___")
并且 blankedSentence
将包含您的 sentence
并随机删除一个单词。
My ___ is red.
编辑:要改为空白字符串中的随机 字符 ,请随机化字符串中的字符索引,并且(如果它不是 space)空白:
Dim sentence as String = "My apple is red."
Dim Rnd as new Random
Dim index As single = Rnd.next(0, sentence.length)
While sentence.Substring(index,1) = " "
index = Rnd.next(0, sentence.length)
End While
Dim blankedSentence as String = sentence.Remove(index,1).Insert(index, "_")
并且 blankedSentence
包含您的 sentence
随机非 space 字母空白:
My ap_le is red.
这不是一个很好的方法,因为所有单词的所有字母(包括标点符号)都可以是空白字符。除此之外,它会让你得到你想要的。
VB6 版本:
Dim sentence as String
Dim index As Integer
Dim intUpperBound As Integer
Dim intLowerBound As Integer
sentence = "My apple is red."
intLowerBound = 1 'assuming the first character of the word
intUpperBound = Len(sentence)
Randomize 'initialize the random number generator
index = Int((intUpperBound - intLowerBound + 1) * Rnd) + intLowerBound
While Mid$(sentence, index, 1) = " "
index = Int((intUpperBound - intLowerBound + 1) * Rnd) + intLowerBound
Wend
Dim blankedSentence As String
blankedSentence = sentence
Mid(blankedSentence, index, 1) = "_" 'replace the current character at index with the new character
我自己找到了另一个解决方案。 它有3个文本框txtInput、txtOutput、txtKeyPos和一个命令按钮command1
代码:
Private Sub Command1_Click()
t1 = Left$(txtInput.Text, Int(txtKeyPos.Text) - 1)
t2 = Right$(txtInput.Text, (Len(txtInput.Text)) - Int(txtKeyPos.Text))
txtOutput.Text = t1 & "_" & t2
End Sub
这符合我的目的。