4

例を見てみましょう:

System.out.println("Hello  Uni\u03C0");
System.out.println("Hello Esc \\");

これは次のようなものを与えます

こんにちは うにパイ

こんにちは Esc \

ループ内の異なる反復中に 03C0 と \ に異なる値を与える方法はありますか?

たとえば、次のようなもの

System.out.format("Hello Esc \%c",'\\');
System.out.format("Hello Esc \%c",'\"');

これによりコンパイラエラーが発生することはわかっています。これを行う方法を知りたいです。

たとえば、ループの各反復で別の Unicode 文字 (\u0000 から \u00C3 など) を出力したいと思います。

たとえば、整数の 4 桁の 16 進数値を返す次の関数があります。

public static String hexa(int a)
    {
    int x=a;
    String b= String.format("%x",x);
    if(b.length() == 1)
    {
    b="000"+b;
    }
    if(b.length() == 2)
    {
    b="00"+b;
    }
     if(b.length() == 3)
    {
    b="0"+b;
    }
    return b;
    }

\u を hexa(i) と結合して、異なる i に対して異なる Unicode 文字を取得したいと思います

4

1 に答える 1

3

整数を 16 進文字列に変換する必要さえありません。整数のままにして使用するCharacter.toChars()

    StringBuilder sb = new StringBuilder();
    sb.append(Character.toChars(0x03C0));
    System.out.println(sb.toString());

for ループを示すさらなる例:

public static void main(String [] args) {
    String lineSeparator = System.lineSeparator();
    StringBuilder sb = new StringBuilder();

    for(int i = 0x03C0; i < 0x03D0; i++) {
        sb.append(Character.toChars(i)).append(lineSeparator);
    }

    System.out.println(sb.toString());
}

出力:

π
ρ
ς
σ
τ
υ
φ
χ
ψ
ω
ϊ
ϋ
ό
ύ
ώ
Ϗ

最後の説明:

System.out.println(Character.toChars(0x03C0)[0] == '\u03C0');

出力:

true

StringBuilder を使用しない例:

String foo = "";
for(char c : Character.toChars(0x03C0)) {
    foo += c;
}
System.out.println(foo);
于 2013-11-22T18:22:53.767 に答える