java文件加密switch case的报错

class encodding{
public static void encoded(String s){
  for(int i=0;i < s.length();i++){
  char c = s.charAt(i);
     switch(c){
      case A: s.charAt(i) = T;  break;
      case B: s.charAt(i) = O;  break;
      case C: s.charAt(i) = I;  break;
      case D: s.charAt(i) = A;  break;
      case E: s.charAt(i) = N;  break;
      case F: s.charAt(i) = D;  break;
      case G: s.charAt(i) = E;  break;
      case H: s.charAt(i) = G;  break;
      case I: s.charAt(i) = H;  break;
      case J: s.charAt(i) = Z;  break;
      case K: s.charAt(i) = B;  break;
      case L: s.charAt(i) = K;  break;
      case M: s.charAt(i) = F;  break;
      case N: s.charAt(i) = J;  break;
      case O: s.charAt(i) = M;  break;
      case P: s.charAt(i) = C;  break;
      case Q: s.charAt(i) = L;  break;
      case R: s.charAt(i) = P;  break;
      case S: s.charAt(i) = Y;  break;
      case T: s.charAt(i) = V;  break;
      case U: s.charAt(i) = X;  break;
      case V: s.charAt(i) = Q;  break;
      case W: s.charAt(i) = R;  break;
      case X: s.charAt(i) = W;  break;
      case Y: s.charAt(i) = U;  break;
      case Z: s.charAt(i) = S;  break;
      default: System.out.println("内容有误");  break;
     }
   }
 }

 

char类型的字符要使用单引号

直接用s.char(i)='A'好像并不能改变原字符串的,可以用一个新的字符串或者Stringbuffer将加密后的每个字符拼接起来

每一行都这样改下试试看: