キーワード暗号に関する質問に私が助けてもらえるかどうかは不思議でした。マイコードのキーワード暗号の暗号化キーの作成(Java)
次のコードは、キーワード暗号(「これは秘密のメッセージです」としましょう)が(「qabp bp k poynoq hoppkdo」)となった方法を示すキーです。したがって、キーはStringまたはchar配列です。私の先生は私たちにchar配列を使用させました。上記の場合、キーは{KEYWORDABCFGHIJLMNPQSTUVXZ}
、基本アルファベットは{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
に対応するため、A
はK
になり、A
になります。
しかし、私はキーを作成しようとすると、すぐに問題に戻ります。最初に表示されるループは、配列の最初の値のキーワードを完全に細かく追加します。ただし、これを残りの配列に追加した後(キーワードの文字を含まない、またはスキップするアルファベットの残りの部分)は、2番目のループでは機能していないようです。
私が間違っていることは正確にはわかりませんが、if文の1つ、またはループで使用するjavaキーワード(continue;
)と関係していると思います。キーワードarray
を印刷すると、には、すでに単語に出現している文字ではなく、アルファベットの最後の7文字が除外されているように見えるので、KEYWORD
です。
コードを修正したり、正しい軌道に乗ってくれたら、それは大変ありがたいことです。質問に質問がある場合は、下のコメントセクションでお気軽にお問い合わせください。/
ありがとうございました!
public class Crytograph
{
private String in;
private String out;
//private int awayFrom;
private char [] keyword;
private String word;
public Crytograph(String input, String wordLY) // , int fromAway)
{
in = input.toLowerCase();
out = "";
awayFrom = fromAway;
word = wordLY;
keyword = new char[26];
int counter = 97;
int counter1 = 0;
for (int x = 0; x < word.length(); x++)
{
keyword[x] = word.charAt(x);
}
for (int i = word.length(); i < 26; i++)
{
if ((char)(counter) == keyword[counter1])
{
continue;
}
else
{
keyword[i] = (char)(counter);
//System.out.println(keyword[i]);
}
counter++;
counter1++;
if (counter1 == word.length())
{
counter1 = 0;
}
}
}
ご質問がありましたら、下記のコメント欄にお尋ねください。ありがとうございました! – user7282043
trueに評価された場合はこれを行いますか?内部(文字)(カウンター)を印刷してみてください。 – user7733611
はい、trueと評価されます。 – user7282043