基本问题

时间:2017-01-11 23:45:11

标签: java caesar-cipher

我是Java新手,这是一个非常基本的问题。这是该计划的一小部分。这就是我要做的事:
用户在keyLength中输入一个数字(1-26)作为加密。如果number为1,secretletter将为a;如果它是2,它将是b,依此类推,直到它将是26。

我想知道的是,有没有比这样做更好的方法:

if (keyLength==1){
    secretletter=a;
if (keyLength==2){
    secretletter=b;

我所做的是下面,但我的for循环是错误的,我总是以z结束。

public static char secret(String str,int keyLength){
    char secretletter = 0;
    if (keyLength>=0 && keyLength<27){
        for(char i='a'; i<='z';i++){
            secretletter=i;
        }   
    }
    return secretletter;
}
编辑:我发现了自己的错误,而且其他人帮我了

secretletter=(char)('a'+ keyLength - 1);

1 个答案:

答案 0 :(得分:0)

您可能需要查看Oracle documentation以获取switch语句。

public static char secret(int keyLength){
  char key;
  switch (keyLength) {
    case 1:  key = 'a';
      break;
    case 2:  key = 'b';
      break;
    case 3:  key = 'c';
      break;
    ........
    default: key = 'z';
      break;
  }
  return key;
}