2011-10-08 14 views
93

私は0-255の範囲のintを持ちます。この文字のASCII値が指定された整数になるようにString(長さ1)を作成します。ASCIIコード(0-255)を関連する文字の文字列に変換する方法は?

Javaでこれを行う簡単な方法はありますか?

例:あなたが言うように、0〜255の間で、あなたは単一の文字の配列を取得します、整数をされると仮定すると、

65 -> "A" 
102 -> "f" 
+3

これは上記のように重複していません。これは整数からの変換ではなく、char(ascii) –

+10

*からです。*「intからStringに変換する方法」の複製ではありません...とにかく、FWIW、ASCIIは値[0、127]の7ビットのみです。 - ) –

+0

@phooji私はポストsais変換する方法1 - > "1"など ' – Belgi

答えて

181
+0

MIDP 2/CLDC 1.1ベースのプラットフォーム( 'Character.toString(char) 'を持たない)の場合は、http://stackoverflow.com/a/6210938/923560で追加の解決策を提供します – Abdull

+0

'なぜなら、 'Character.toString(i);'?(Javaのnoob) –

+0

は 'Character.toString'がintを受け入れないからです。 – behelit

24

String.valueOf(Character.toChars(int))

Character.toCharsから返されます。これは、String.valueOfに渡されると1文字の文字列になります。 Character.toCharsを使用して

あなたはキャスト(エラーを飲み込むだろうしながら、適切に整数を検証するために失敗した場合Character.toCharsIllegalArgumentExceptionをスローすることを含め、いくつかの理由で(すなわち(char) icharintからキャストを伴う方法に好適ですnarrowing primitive conversions specification)、意図したもの以外の出力が得られる可能性があります。

+0

整数が0から255の範囲で(あなたがしているように...質問が指定するように)、 'toChars'を使うのは不必要で、最適ではありません。 –

+5

'Character.toString((char)i)'のようなものが 'String.valueOf(Character.toChars(i))'よりも速いのはまったく正しいと思います。私のマシンで与えられた範囲(100回、安全である)で1,000,000のランダムな整数を変換するというクイックベンチマークを実行すると、平均時間は153.07ナノ秒で、862.39ナノ秒です。しかし、興味深いアプリケーションでは、最適化するためにはるかに重要なことがあります。安全で決定論的な取り扱いの付加価値と[0,255]の範囲外への拡張の容易さは、マイナーなパフォーマンスヒットを上回る必要がある場合に必要です。 – zjs

4
new String(new char[] { 65 })) 

あなたは、その単一の文字のJava文字で(ASCII)コード65を持っているが、数値データ型である長さ1の文字列となってしまいます。聞かせて、文字に

タイプキャスト整数:

42

System.out.println((char)65); は ""

+0

REPL tip:JShell(Java 9)を使用している場合は、System.outを省略できます。 '(char)65'と入力するだけで、どの文字かを知ることができます。 – DavidS

1

一つは、同じことを行うための簡単な方法この

int asciiForLowerA = 97; 
int asciiForLowerZ = 122; 
for(int asciiCode = asciiForLowerA; asciiCode <= asciiForLowerZ; asciiCode++){ 
    search(sCurrentLine, searchKey + Character.toString ((char) asciiCode)); 
} 
0

などのAからZまで繰り返すことができます印刷しますint nは整数、 、

Char c=(char)n; 
System.out.print(c)//char c will store the converted value. 
6
int number = 65; 
char c = (char)number; 

は、それが単純な溶液

-1

あるこれはチャーにINTを変換することによって、一つはASCIIコードに対応する文字を決定することができることを示しており、一例です。

public class sample6 
{ 
    public static void main(String... asf) 
    { 

     for(int i =0; i<256; i++) 
     { 
      System.out.println(i + ". " + (char)i); 
     } 
    } 
} 
-1

上の回答のみで問題を解決してください。あなたの答えをheres:

Integer.decode(Character.toString(char c));

0
for (int i = 0; i < 256; i++) { 
     System.out.println(i + " -> " + (char) i); 
    } 

    char lowercase = 'f'; 
    int offset = (int) 'a' - (int) 'A'; 
    char uppercase = (char) ((int) lowercase - offset); 
    System.out.println("The uppercase letter is " + uppercase); 

    String numberString = JOptionPane.showInputDialog(null, 
      "Enter an ASCII code:", 
      "ASCII conversion", JOptionPane.QUESTION_MESSAGE); 

    int code = (int) numberString.charAt(0); 
    System.out.println("The character for ASCII code " 
      + code + " is " + (char) code); 
+0

答えを説明してください – want2learn

関連する問題