0

文字列を受け取って暗号化するプログラムを作りたいです。

プログラムの実行中に、文字列を 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);
    }
}
4

1 に答える 1

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;
    }
}
于 2012-12-31T15:07:15.050 に答える