> Java > java지도 시간 > 내 Java 코드가 정수를 인쇄할 수 없는 문자로 변환하는 이유는 무엇입니까?

내 Java 코드가 정수를 인쇄할 수 없는 문자로 변환하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-10 03:07:02
원래의
1035명이 탐색했습니다.

Why Does My Java Code Convert an Integer to an Unprintable Character?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿