6

次の問題があります。そのような文字列配列があります

String[] myArray = {"AAAA","BBBB","CCCC"};

私の目的は、そのような別の配列を作成することです

String myNewArray = {"\uAAAA","\uBBBB","\uCCCC"};

問題は、サイクルを使用して配列を作成しようとすると

for (int i=0; i<myArray.length; i++) {
    myNewArray[i] = "\u" + myArray[i];
}

そのようなサイクルを使用すると、「無効な Unicode エラー」が表示されます

for (int i=0; i<myArray.length; i++) {
    myNewArray[i] = "\\u" + myArray[i];
}

この配列を取得します

String myNewArray = {"\\uAAAA","\\uBBBB","\\uCCCC"};

このサイクルを使えば

for (int i=0; i<myArray.length; i++) {
    myNewArray[i] = "\\u" + myArray[i];
    myNewArray[i] = myNewArray[i].substring(1);
}

この配列を取得します

String myNewArray = {"uAAAA","uBBBB","uCCCC"};

どうすればそれができるか知っている人はいますか?

ありがとう

4

6 に答える 6

7

文字列を 16 進数の整数として解析してから、chars に変換する必要があります。

String[] myArray = {"AAAA", "BBBB", "CCCC"};
String[] myNewArray = new String[myArray.length];
for (int i=0; i<myArray.length; i++) {
    char c = (char) Integer.parseInt(myArray[i], 16);
    myNewArray[i] = String.valueOf(c);
}
于 2013-06-20T09:14:49.507 に答える
1

\uAAAA5 文字の String ではなく、リテラルです。したがって、連結で作成することはできません。1チャーです

于 2013-06-20T09:12:27.397 に答える
0

私は実際にあなたの問題を解決することはできませんが、次のことを伝えることができます。あなたの2番目のアプローチは実際には正しいです。System.out.println( "\u" + "AAAA" ) は \uAAAA を出力する必要があります。その結果、コードが正しいと言えます。ランタイム環境/IDE でエンコーディング オプションを検索することをお勧めします。

于 2013-06-20T09:24:44.470 に答える
0

以下のプログラムをコピーして貼り付けるだけです。コードをテストしました。正常に動作しています。

パブリック クラス メイン {

static String a[];
private static String[] myNewArray;

public static void main(String[] args) {


    String[] myArray = {"AAAA", "BBBB", "CCCC"};
    myNewArray = new String[myArray.length];
    for (int i = 0; i < myArray.length; i++) {
        myNewArray[i] = "\\u" + myArray[i];
    }
    for (int i = 0; i < myArray.length; i++) {
        System.out.println(myNewArray[i]);
    }
}

}

于 2013-06-20T09:26:54.233 に答える
0

文字をエスケープする\必要があります。

したがって、myNewArray[i] = "\\u" + myArray[i]実際に行うことは、あなたがやりたいことです。

問題を解決するために印刷してみてください。

于 2013-06-20T09:13:06.223 に答える
-2
String[] myArray = {"AAAA","BBBB","CCCC"};
String[] myNewArray = {"\uAAAA","\uBBBB","\uCCCC"};
        String we="\\u";
        for (int i=0; i<myArray.length; i++) {
    myNewArray[i] = we + myArray[i];

}
于 2013-06-20T09:14:06.367 に答える