>Java >java지도 시간 >Java에서 '1'을 문자로 변환하면 빈 출력이 나타나는 이유는 무엇입니까?

Java에서 '1'을 문자로 변환하면 빈 출력이 나타나는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-15 07:42:02904검색

Why Does Converting `1` to a Character in Java Result in an Empty Output?

Java에서 정수를 문자로 변환하는 미스터리

Java에서 정수를 문자로 변환하는 것은 일반적인 작업이지만 그렇지 않으면 혼란스러울 수 있습니다. 올바르게 이해했습니다. 이 문서에서는 이 변환과 관련된 복잡한 사항을 조명하고 잠재적인 문제에 대한 솔루션을 제공합니다.

빈 출력 뒤에 숨은 미스터리

아래 코드 조각을 고려하세요.

int a = 1;
char b = (char) a;
System.out.println(b);

이 경우 출력은 빈 문자열이 됩니다. 그 이유는 Java에서 사용하는 유니코드 인코딩 체계에 있습니다. 정수 a가 (char) 캐스트를 사용하여 문자로 변환되면 제목 시작 문자에 해당하는 유니코드 코드 포인트 1로 해석됩니다. 이 문자는 인쇄할 수 없으므로 빈 출력이 됩니다.

'1' 트릭

반대로 다음 코드 조각은 문자 "1"을 인쇄합니다.

int a = '1';
char b = (char) a;
System.out.println(b);

초기화의 작은따옴표는 문자 리터럴을 다루고 있음을 나타내기 때문입니다. 이 경우 문자 '1'은 문자 "1"인 유니코드 코드 포인트 49에 해당합니다.

숫자를 문자로 변환

원하는 경우 숫자(0-9)를 문자로 변환하려면 숫자에 48을 추가한 다음 문자로 타입캐스트할 수 있습니다.

int digit = 7;
char c = (char) (digit + 48);
System.out.println(c); // Output: '7'

또는 Character.forDigit() 메서드를 사용할 수 있습니다.

int digit = 7;
char c = Character.forDigit(digit, 10);
System.out.println(c); // Output: '7'

유니코드 코드 포인트를 문자로 변환

유니코드 코드 포인트를 나타내는 정수를 문자로 변환하려면 Character.toChars()를 사용할 수 있습니다. 방법:

int codePoint = 65;
char[] chars = Character.toChars(codePoint);
char c = chars[0];
System.out.println(c); // Output: 'A'

이러한 기술을 이해하면 혼란이나 예상치 못한 출력을 피하면서 정수를 Java의 문자로 자신있게 변환할 수 있습니다.

위 내용은 Java에서 '1'을 문자로 변환하면 빈 출력이 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.