私はユーザーが何らかのテキストを入力できるようにする復号化ソフトウェアを作っており、プログラム内の文字を入れ替えることができます。たとえば、ユーザー入力のすべての「O」を「W」に置き換えることができるドロップダウンボックスがあります。したがって、入力 "スタックオーバーフロー"の出力は "Stack wverflww"になります。VB - 文字の置換
しかし、私の問題は、ユーザーが変更する2番目の文字を選択すると、その文字は既にスワップされているため、問題が発生するということです。たとえば、上記の最初の例が発生した後、ユーザが入力のすべての "W"を "A"に変更したい場合、出力は "stack averflaa"になります。しかし、私が行うべきコードを探しているのは "Stack wverflwa"の出力です。したがって、ユーザ入力の元の「W」のみが文字「A」に変更されます。
私は上記が意味をなさないことを願っています。
二次元配列を使用して新しい文字を再割り当てすることを提案しましたが、これを行うことができますが、これを自分のコードに入れて動作させる方法がわかりません。以下は私のコードであり、私を助けることができる人に感謝します。
Dim chooseLetter, replaceLetter, words2
chooseLetter = selectLetterCombo.Text
replaceLetter = replaceLetterCombo.Text
words2 = UCase(textInputBox.Text)
Dim replaceList As New List(Of String)
For Each z In words2
If z = chooseLetter Then
replaceList.Add(replaceLetter)
Else
replaceList.Add(z)
End If
Next
letterReplaceBox.Text = ""
For Each f In replaceList
letterReplaceBox.Text = letterReplaceBox.Text & f
Next
注:selectLetterCombo.Textは、彼らが交換したいとreplaceLetterCombo.Textは、彼らが持つ最初の選ばれた手紙を交換するユーザーが選択した文字であることをユーザが選択した文字です。また、textInputBox.textは、ユーザーが入力したテキストです。
ありがとうございました!
なぜどこかの変数の元の単語を覚えておかないと、元の単語との置換を必ず実行してください。また、私はこの "暗号化"がテストや宿題のためのものであり、実際に誰かをだますようには設計されていないことを願っています:) – Jeremy
@Jeremyはあなたの提案をありがとうが、私はすでにそれを試して、私はすべての置換えを同時に出力しようとしています。すべての置換を1つの出力としてマージしないたびに、元のものと逆にするとします。そして、 "解読"ソフトウェアは私が設定したAレベルの作品の一部です。 – Lauren