2016-05-20 2 views
0

整数をASCIIに変換するにはどのように変換クラスを使用せずに明示的キャストを使用しないで暗黙に同じですか?整数をASCII文字A〜Fに暗黙的に変換するJava

問題は、整数12を文字Cに変換して既存のStringに追加しようとしていることです。私の試みは以下の通りです:

s += 12 +'A'-10; 

は、このすべてが私を取得するには、ASCII文字「C」の10進数で出力67、ですが、私は、出力ではなく、67

する文字Cを必要とします

複数のif-else-ifステートメントを使用せずに、また上記の内容を使用しないでこれを行う方法はありますか?

+0

実際、どのようにあなたはそれを印刷しますか? – Ian

+1

'String.format("%X "、12)'だけではないのはなぜですか? –

答えて

2

は問題がRHS上の表現があることで得られますcharは自動的にに広げられます10; +=演算子は整数値を文字列に連結します。 (とりわけ)

つのオプション:

  1. キャストcharへ:

    s += (char) (12 + 'A' - 10); 
    
  2. 使用String.format:outpurを印刷する方法に依存

    s += String.format("%X", 12); 
    
2

あなたの問題は表示されません。

char s = 12 + 'A' - 10; 
    System.out.println("s = '" + s + "'"); 

プリントs = 'C'

+0

問題は、 '12 + 'A' - 10'は' int'型なので、 's + = 'はcharではなく整数値を追加します。 –

+0

@AndyTurner - 's + =(char)(...)'を試しましたか? – OldCurmudgeon

+0

はい、私の答えを見てください。ポイントは確かですが、それを 'char'に代入(またはキャスト)すれば動作しますが、OPはそうしていません。 –

0

私はこのことを前提としていますから、

12 + 'A' - 10 

タイプintは次のとおりです。

char s = 'A' + 12 - 10; 

文字'C'

関連する問題