我想创建一个带字符串并加密它的程序。
在执行程序期间,它应该将字符串转换为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);
}
}
答案 0 :(得分: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;
}
}