15

以下は私のコードで、J=74、A =65、M=77 を出力します。アルファベットを下に移動した結果として、文字 K、B、N だけを印刷するにはどうすればよいですか?

BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
String string = JOptionPane.showInputDialog( " Please Enter Code " );

for (int i = 0; i < string.length (); ++i) {
    char c = string.charAt(i);
    int j = (int)c;
}


System.out.println("ASCII OF "+c +" = " + j + ".");
4

4 に答える 4

17

単純にキャストintするchar

System.out.println((char) 65);        // A
System.out.println((char) ('A' + 1)); // B
System.out.println((int) 'A');        // 65

注意してください、これは素朴な問題 (または少なくとも悪い話し方の問題) に対する生の試みです。スニペットの最後の行には、必要なものがすべて含まれています。charJava では実際には整数型であることを見逃しているだけかもしれませchar+%

System.out.println((char) ('Z' + 5));
System.out.println((char) ('Z' / 2));
System.out.println((char) ('Z' % 31));
于 2012-10-22T13:54:50.360 に答える
8

あなたはすでに質問自体にあなたの答えを与えていると思います。以下のように整数をcharにキャストする必要があります

    int j=77;
    char c=(char)j;
    System.out.println(c);
于 2012-10-22T14:29:27.207 に答える
3

ということですか?

for (int i = 0; i < string.length (); ++i) {
    char c = string.charAt(i);
    c++; // next character.
    System.out.print(c);
}
于 2012-10-22T13:55:58.580 に答える