我的char切换软件返回相同的答案?

Oli*_*r-R 0 java arrays encryption char

我想创建一个带字符串并加密它的程序.

在执行程序期间,它应该将字符串转换为char数组.然后,switch语句在数组中运行以替换a和b,反之亦然.

但是,程序只返回与开始时相同!这是代码

import java.lang.*;
import java.util.Scanner;


public class Program
{

    public static void main(String args[]) 
    {
        Scanner input = new Scanner(System.in);
        String pw = input.next();
        char pwa[] = pw.toCharArray();

        for(char c : pwa ){
          switch(c){
            case 'a':
            c = 'b';
            break;
            case 'b': 
            c ='a';
            break;
          }
        }
        String convpw = new String(pwa);
        System.out.println(convpw);
    }
}
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 5

您只是更改变量c,而不是pwa,并且c是循环的本地变量.

你可以这样做 :

for (int i=0; i<pwa.length; i++) {
    switch(pwa[i]){
    case 'a':
       pwa[i] = 'b';
       break;
    case 'b': 
       pwa[i] ='a';
       break;
    }
}
Run Code Online (Sandbox Code Playgroud)