0

ユーザーが入力した内容を暗号化および復号化するプログラムを作成する必要があります。すべての文字を組み合わせて暗号化された単語を作成する方法を見つけるのに苦労しています。これが私のコードです(私はEclipseを使用しています):

          import java.util.Scanner;

        public class Encryption 
        {
            public static String message = "";
            public static boolean hasMessage = false;
            public static boolean encrypted = false;
            static char a = 0; 
            static char b;
            static int w;
            static int x;
            static int y;
            static int z;
        static int i;


            public static void display()
            {
                System.out.println("Message: " + message + "\n");
            }

            public static void encrypt(String word)
            {
                if(!hasMessage)
                {
                    System.out.println("No message");
                    // Tell the user there is no message
                }
                else if(encrypted)
                {
                    System.out.println("Message is already encrypted");
                    // Tell the user the message is already encrypted
                }

                else
                {

                    // Reset the message to blank
            for (int i = 0; i < message.length(); i++) {
                i = j;
                ``char a = message.charAt(i);
            for (int j=0; j==message.length(); j++) 
            {
                int w = (int) a * 2;
                int x = (int) w + 2;  
                char y = (char) x; 
            }
            }
    }

=

                    //get char from each letter (increase char each time),  cast as int


                }
                System.out.println(message);
                encrypted = true;

                // Using the parameter word, modify message
                // to contain a new value following a predictable pattern
                // Hint:  alter each character's ASCII value by casting
                //        to an integer and using math operators

                // Display the new message
                // Set encrypted to true


            }

            public static void decrypt(String word)
            {
                if(!hasMessage)
                {
                    System.out.println("No message");
                    // Tell the user there is no message
                }
                else if(!encrypted)
                {
                    System.out.println("Message not encrypted");
                    // Tell the user the message is not encrypted

                }
                else
                {
                    int a = (int) w / 2;
                    int w = (int) x - 2;  
                    char x = (char) y; 
                    System.out.println(message);
                    // Like encrypt, but in reverse
                }

            }

            public static void main(String[] args) 
            {  
                Scanner sc = new Scanner(System.in);
                int menuChoice = 0;

                while(menuChoice != 4)
                {
                    System.out.println( "[1] Enter Word\n" + 
                            "[2] Encrypt\n" + 
                            "[3] Decrypt\n" + 
                            "[4] Quit\n");

                    menuChoice = sc.nextInt();

                    if(menuChoice == 1)
                    {
                        System.out.println("Input message");
                        message = sc.next();
                        // prompt user to input message
                        // assign next word to the class-level variable message
                        hasMessage = true;
                        encrypted = false;
                        // set hasMessage to true
                        // set encrypted to false

                    }
                    else if(menuChoice == 2)
                    {
                        encrypt(message);
                    }
                    else if(menuChoice == 3)
                    {
                        decrypt(message);
                    }
                }
            }
        }
4

1 に答える 1

0

おそらくforループからの問題です。この for ループが何をすべきかよくわからないので、変更を手伝うことはできません。

for (message.charAt(a); a==message.length(); a++) 
        {
            int w = (int) a * 2;
            int x = (int) w + 2;  
            char y = (char) x; 
        }

これが疑似コードで行うこと:

  1. 文字列 a の 0 の文字を要求し、何もしません。これは時間を無駄にするだけなので、これが実際に何のためにあるのかわかりません。
  2. はいの場合はメッセージが空かどうかを確認し、そうでない場合はループを終了します。
  3. このループでコードを実行します。

あなたがやりたいことは、次のように char ごとに文字列をループすることだと思います。

for (int i = 0; i < message.length(); i++) {
    char a = message.charAt(i);
}
于 2012-12-11T00:46:31.187 に答える