Java에서 정수를 문자로 변환: 비교
Java에서 문자 및 정수 변환을 이해하는 것은 까다로울 수 있습니다. 다음 코드 조각을 살펴보겠습니다.
int a = 1; char b = (char) a; System.out.println(b);
이 코드는 문자 '1'을 인쇄해야 합니다. 그러나 빈 출력이 생성됩니다. 이를 이해하려면 유형 변환 프로세스를 더 깊이 파고들어야 합니다.
char b = (char) a 할당은 정수 a(숫자 1)를 문자로 변환합니다. 이 변환은 실제로 정수 값에 해당하는 유니코드 코드 포인트를 사용하여 문자를 저장합니다. 예를 들어, '1'에 대한 유니코드 코드 포인트는 49인 반면, 제목 시작 문자의 유니코드 코드 포인트는 1입니다. 정수 a는 1이므로 제목 시작 문자로 변환됩니다. 인쇄할 수 없습니다.
반대로 다음 코드 조각은
int a = '1'; char b = (char) a; System.out.println(b);
예상 출력 '1'을 생성합니다. 이는 int a = '1' 할당이 a를 정수 값 1이 아닌 ASCII 값 '1'(49)로 초기화하기 때문입니다.
정수를 의도한 대로 문자로 변환하려면 첫 번째 스니펫에서는 다음 접근 방식을 사용할 수 있습니다.
Character.forDigit() 사용 메서드: 0에서 9 사이의 숫자를 해당 문자로 변환합니다.
int a = 1; char b = Character.forDigit(a, 10); System.out.println(b); // Prints '1'
정수에 48을 더하고 다음을 변환합니다. 이 접근 방식은 숫자의 유니코드 코드 포인트가 숫자보다 48 높다는 사실에 근거합니다. 값입니다.
int a = 1; char b = (char) (a + 48); System.out.println(b); // Prints '1'
Character.toChars() 메서드를 사용하세요. 이는 유니코드 코드 포인트를 해당 문자 배열로 변환합니다.
int a = 1; char[] b = Character.toChars(a); System.out.println(b[0]); // Prints '1'
위 내용은 내 Java 코드가 정수를 인쇄할 수 없는 문자로 변환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!