如何在密码程序中包含空格?

时间:2018-09-28 00:47:00

标签: java

代码询问您是否要编码或解码消息,然后询问消息。它将通过以下引用起作用: “ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,。/ <>?::’” [] {} = + -_()*&^%$#@!〜`0123456789”

“ kngcadsxbvfhjtiumylzqropweKNGCADSXBVFHJTIUMYLZQROPWE,。/ <>?; ::”” [] {} = + -_()*&^%$#@!〜`0123456789”

因此,如果您尝试对字母“ a”进行编码,则它将输出字母“ k”。

我的问题是在键入消息时不能包含任何空格。

这是我的代码:

import java.util.Scanner;

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

        do {
            System.out.println("Enter 1 to encode, 2 to decode, 3 to quit:");
            int start = input.nextInt();

            if (start == 3){
                break;
            }

            System.out.println("Type your message:");
            String test = input.next();
            String letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,./<>?;:’”[]{}=+-_()*&^%$#@!~`0123456789 ";
            String enc = "kngcadsxbvfhjtiumylzqropweKNGCADSXBVFHJTIUMYLZQROPWE,./<>?;:’”[]{}=+-_()*&^%$#@!~`0123456789 ";

            char[] array = test.toCharArray();
            char[] decoded = letters.toCharArray();
            char[] encoded = enc.toCharArray();
            int[] position = new int[array.length];
            char[] end = new char[array.length];

            if (start == 1){
                for (int i = 0; i < test.length(); i++){
                    for (int j = 0; j < decoded.length; j++){
                        if (array[i] == decoded[j]){
                            position[i] = j;
                        }
                    }
                }

                for (int f = 0; f < test.length(); f++){
                    end[f] = encoded[position[f]];
                }

                for (int x = 0; x < test.length(); x++){
                    System.out.print(end[x]);
                }
                System.out.println(" ");
            } else {
                for (int i = 0; i < test.length(); i++){
                    for (int j = 0; j < encoded.length; j++){
                        if (array[i] == encoded[j]){
                            position[i] = j;
                        }
                    }
                }

                for (int f = 0; f < test.length(); f++){
                    end[f] = decoded[position[f]];
                }

                String output = new String(end);
                System.out.println(output);
            }
            System.out.println(" ");
        } while (1 ==1);

    }
}

0 个答案:

没有答案