キャラクターを別のキャラクターに置き換えるプログラムを作成しようとしています。次のように、奇数と偶数の2つの配列を作成しました。
char[] odd = { 'a', 'c', 'e', 'g', 'i', 'k', 'm', 'o', 'q', 's', 'u', 'w', 'y' };
char[] even ={ 'b', 'd', 'f', 'h', 'j', 'l', 'n', 'p', 'r', 't', 'v', 'x', 'z' };
ここで、入力が「a」の場合は「b」を入力し、入力が「b」の場合は「 a 」を出力する必要があります。
ですから、両方の配列の数が等しいので、両方の配列のインデックスを一致させるのが最善だと思いました。基本的な考え方はこれです:
入力は'a'であるため、コンパイラは' a'-0のインデックスを考慮に入れ、値を0- 'b'のインデックスに置き換えます。
そこで、予備の文字'j'を割り当てることを考えました。これにより、入力のインデックスが検索され、配列から対応する文字が出力されます- even[]
。
何度か試しましたが、解決できませんでした。親切にこれで私を助けてください...
これは私が試したことです。
必要な入力は次のようになります:Hello必要な出力は次のようになります:Gfkkp
これはおそらく私に望ましい結果を与えるでしょう。
private void superSecretFormula(string myName)
{
string read = myName;
int count = read.Length;
char[] odd = { 'a', 'c', 'e', 'g', 'i', 'k', 'm', 'o', 'q', 's', 'u', 'w', 'y' };
//char[] j;
char[] even = { 'b', 'd', 'f', 'h', 'j', 'l', 'n', 'p', 'r', 't', 'v', 'x', 'z' };
for (int i = 0; i < count; i++)
{
for (int j = 0; j < 13 ; j++)
{
if (read[i]==odd[j])
{
int k = j;
textBlock1.Text = textBlock1.Text + Convert.ToString(char.ToUpperInvariant(even[k]));
}
if (read[i] == even[j])
{
int k = j;
textBlock1.Text = textBlock1.Text + Convert.ToString(char.ToUpperInvariant(odd[k]));
}
}
}
}
私は初心者であり、コードを学び始めたばかりなので、この問題を解決するための品質とアプローチについてコメントしてください。ありがとう