Java에서 ASCII 코드 ([0, 255] 범위의 정수)를 해당 ASCII 문자로 변환하려면 어떻게해야합니까?
예를 들면 다음과 같습니다.
65 -> "A"
102 -> "f"
Java에서 ASCII 코드 ([0, 255] 범위의 정수)를 해당 ASCII 문자로 변환하려면 어떻게해야합니까?
예를 들면 다음과 같습니다.
65 -> "A"
102 -> "f"
답변:
Character.toString(char), stackoverflow.com/a/6210938/923560은 추가 솔루션을 제공합니다.
(char)지정 사유는 무엇입니까 ? 다시 말해, 왜 그냥 넣을 수 Character.toString(i);없습니까? (Java noob)
Integer유형 에는 작동하지 않습니다 . "java.lang.Integer를 java.lang.Character로 캐스트 할 수 없습니다"오류가 발생합니다. int먼저 캐스트 추가 : 예 : Character.toString((char)(int)myInteger);
i값 (0-255)는 ISO-8859-1 문자 세트에서 것이다. (질문 아스 커는이 대답을 수락함으로써 제외하고 싶었다 된 "확장 ASCII"[모호한 용어] 확인을 거부했다.)
System.out.println((char)65);
"A"를 인쇄합니다
(char) 65어떤 문자인지 알아 보려면 입력 하십시오.
String.valueOf(Character.toChars(int))
정수가 0에서 255 사이라고 가정하면에서 단일 문자가있는 배열을 얻을 수 있습니다.이 배열은로 Character.toChars전달 될 때 단일 문자 문자열이됩니다 String.valueOf.
사용하여 Character.toChars에서 깁스를 포함하는 방법에 바람직하다 int에 char(즉, (char) i여러 가지 이유로)이 포함 Character.toChars을 던질 것이다 IllegalArgumentException당신이 캐스트가 (당 오류를 삼켜 동안 제대로 정수를 확인하지 않을 경우 로우 원시적 변환 사양 ) 잠재적으로 제공 의도 한 것과 다른 출력.
toChars입니다.
Character.toString((char) i)것이보다 빠르다는 것이 완전히 정확합니다 String.valueOf(Character.toChars(i)). 내 컴퓨터에서 주어진 범위 (100 회, 안전하기 위해)에서 1,000,000 개의 임의 정수를 변환하는 빠른 벤치 마크를 실행하면 평균 시간이 153.07 나노 초 대 862.39 나노 초입니다. 그러나 흥미로운 응용 프로그램에는 최적화해야 할 것이 훨씬 더 중요합니다. 안전하고 결정적인 처리의 부가가치가 필요한 경우 [0,255] 범위를 벗어나 확장하기가 쉽지만 성능 저하가 적습니다.
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);
위의 답변은 문제 해결 근처에만 있습니다. 여기 당신의 대답 :
정수. 코드 (Character.toString (char c));