###前提・実現したいこと
int型の数値をchar型にキャストし、それを二番目の引数にしてreplaceをした文字列が文字化けしてしまう問題が発生しました。
###該当のソースコード
java
1import java.util.*; 2 3public class Main { 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 String l = sc.nextLine().replaceAll(" ", ""); 7 char[] list = l.toCharArray(); 8 String type = sc.next(); 9 String line = sc.next(); 10 if (type.equals("encode")) { 11 for (int i = 0; i < line.length(); i++) { 12 char x = line.charAt(i); 13 line = line.replace(x, list[(int) x - 48]); 14 } 15 } else if (type.equals("decode")) { 16 for (int i = 0; i < line.length(); i++) { 17 char x = line.charAt(i); 18 for (int j = 0; j < 10; j++) { 19 if (x == list[j]) { 20 line = line.replace(x, (char) j); 21 } 22 } 23 } 24 25 } 26 System.out.println(line); 27 } 28} 29
これで"decode"を入力して処理するとlineが文字化けしてしまいます。
###試したこと
キャストする対象や位置を色々変えましたが改善されませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
8 3 7 1 2 5 6 0 9 4
decode
0728
これを入力すると
7240
と返ってくるはずなんです
回答よろしくお願いします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。