输入密码电文(以句号结尾)按下列规律破译后输出:
数字0,1,2,...9分别由A,B,C,...,J代换;
小写英文字母k,m,p,t,y分别由其下一个后继字母代换;
大写英文字母U,W,R,Z分别由其上一个前导字母代换;
其它字母、符号及空格保持不变
我自己写了,但是只能转换一个字母。。求高手指点下import java.util.Scanner;
public class CodeTest {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入密码电文");
char code = in.nextLine().charAt(0);
int n=0;
if(code>='0'&&code<='9') {
n=(int)code+17;
}
if(code=='k'||code=='m'||code=='p'||code=='t'||code=='y') {
n=(int)code+1;
}
if(code=='U'||code=='W'||code=='R'||code=='Z') {
n=(int)code-1;
}
System.out.print("密电码加密后是"+(char)n);
}

}

解决方案 »

  1.   


    import java.util.Scanner;
    public class CodeTest {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.println("请输入密码电文");
    String inLine = in.nextLine();
    char code;
    int n;
    for (int i = 0; i < inLine.length(); i++) {
    code = inLine.charAt(i);
    n = code;
    if (code >= '0' && code <= '9') {
    n = code + 17;
    }
    if (code == 'k' || code == 'm' || code == 'p' || code == 't'
    || code == 'y') {
    n = code + 1;
    }
    if (code == 'U' || code == 'W' || code == 'R' || code == 'Z') {
    n = code - 1;
    }
    System.out.print((char) n);
    }
    }}
      

  2.   

    lz你写的没加循环。附修改后的源码:
    import java.util.Scanner;
    public class acccc {
        public static void main(String[] args) {
            
            System.out.println("请输入密码电文");
            Scanner in = new Scanner(System.in);
           
            String a=in.next();
            
            for(int i=0;i<a.length();i++){
             if(i==0){
             System.out.println("密电码加密后是");
             }
             char code = a.charAt(i);
             int n=0;
                if(code>='0'&&code<='9') {
                    n=(int)code+17;
                }else if(code=='k'||code=='m'||code=='p'||code=='t'||code=='y') {
                    n=(int)code+1;
                }else if(code=='U'||code=='W'||code=='R'||code=='Z') {
                    n=(int)code-1;
                }else{
                 n=(int)code;
                }
                System.out.print((char)n);
                }
            }
                    
    }