Программа кодирования и декодирования с использованием схемы (Java) - PullRequest
0 голосов
/ 12 октября 2019

Программа должна предложить пользователю выбрать, должно ли сообщение быть закодировано или декодировано, а затем предлагает пользователю ввести сообщение. Пробел используется для разделения каждого слова в сообщении, а точка (.) Используется для обозначения конца предложения. Отдельные методы должны использоваться для кодирования и декодирования входного сообщения.

Схема: A -> Z, B -> Y, C -> X, .... X -> C, Y -> B, Z -> A

Я думаю всевсе в порядке, кроме логики метода кодирования и декодирования.

    import java.util.Scanner;

    public class Project1
    {
        public static void main(  String [] args )
        {
            Scanner input = new Scanner(System.in);

            System.out.println(" ");
            System.out.print( "Press 1 for Encoding, 2 for Decoding: " );
            int x = input.nextInt();
            String temp = input.nextLine();

            System.out.println(" ");
            System.out.print( "Enter message: ");
            String message = input.nextLine();
            System.out.println(" ");



            if ( x == 1)
            {

                encodeMessage( message );
            }

            else if ( x == 2 )
            {   

                decodeMessage( message );
            }

            else
                System.out.print("Invalid response");

        }


        public static void encodeMessage(String message)
        { 
            for (int i = 0; i < message.length(); i++)
            {
                char x = message.charAt(i);
                System.out.print((char)(27 - x));

             }
        }


        public static void decodeMessage (String message)
        {
            for (int i = 0; i < message.length(); i++)
            {
                char x = message.charAt(i);
                System.out.print((char)(27 - x));

            }
        }


    }

Когда я ввожу сообщение, на нем отображаются вопросительные знаки.

1 Ответ

0 голосов
/ 12 октября 2019

Вы уверены, что char на (char)(27 - x) возможен? Потому что в противном случае он будет отображаться как вопросительные знаки или некоторые другие символы, в зависимости от кодировки.

Например, следующий код:

System.out.println((char)1);

Распечатывает этот символ:

...