如何在switch语句输出中添加空格?

时间:2016-04-13 14:59:26

标签: java switch-statement

我正在用java创建一个caesar密码程序。我使用了switch语句,我只有一个问题,就是当我写完全名时,我的第一个和最后一个之间没有空格。

import java.util.*;

public class caesarCipher {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("Write your name:");
        String name = in.nextLine();
        System.out.println("The Encryption for your name:");

        for (int i = 0; i < name.length(); i++) {

            switch (name.charAt(i)) {
                case 'A':
                case 'a':
                    System.out.print("E");
                    break;
                case 'B':
                case 'b':
                    System.out.print("Y");
                    break;
                case 'C':
                case 'c':
                    System.out.print("F");
                    break;
                case 'D':
                case 'd':
                    System.out.print("Q");
                    break;
                case 'E':
                case 'e':
                    System.out.print("W");
                    break;
                case 'F':
                case 'f':
                    System.out.print("D");
                    break;
                case 'G':
                case 'g':
                    System.out.print("T");
                    break;
                case 'H':
                case 'h':
                    System.out.print("C");
                    break;
                case 'I':
                case 'i':
                    System.out.print("R");
                    break;
                case 'J':
                case 'j':
                    System.out.print("N");
                    break;
                case 'K':
                case 'k':
                    System.out.print("B");
                    break;
                case 'L':
                case 'l':
                    System.out.print("G");
                    break;
                case 'M':
                case 'm':
                    System.out.print("A");
                    break;
                case 'N':
                case 'n':
                    System.out.print("J");
                    break;
                case 'O':
                case 'o':
                    System.out.print("X");
                    break;
                case 'P':
                case 'p':
                    System.out.print("O");
                    break;
                case 'Q':
                case 'q':
                    System.out.print("I");
                    break;
                case 'R':
                case 'r':
                    System.out.print("L");
                    break;
                case 'S':
                case 's':
                    System.out.print("Z");
                    break;
                case 'T':
                case 't':
                    System.out.print("M");
                    break;
                case 'U':
                case 'u':
                    System.out.print("P");
                    break;
                case 'V':
                case 'v':
                    System.out.print("S");
                    break;
                case 'W':
                case 'w':
                    System.out.print("H");
                    break;
                case 'X':
                case 'x':
                    System.out.print("K");
                    break;
                case 'Y':
                case 'y':
                    System.out.print("V");
                    break;
                case 'Z':
                case 'z':
                    System.out.print("U");
                    break;
            }
        }
    }

2 个答案:

答案 0 :(得分:2)

由于每个字母都有case但空格不是,所以在加密过程中它会被删除。您可以在default语句的末尾添加switch,只输出该字母而不对其进行加密。这样就可以抓住空间了。

// ...
case 'Z': 
case 'z': 
    System.out.print("U");
    break;
default: 
    System.out.print(name.charAt(i));
    break;

答案 1 :(得分:0)

您不希望使用默认大小写来处理空格,因为您未处理的所有其他符号都将由空格表示。

只需继续使用相同的处理字符的方法:

case ' ':  
    System.out.print(" ");
    break;