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));