2014-09-12 4 views
0

문자가 주어지면 16 진수 문자인지 알아볼 것입니다. 다양한 포럼에서 우리는 Integer 클래스에서 이룰 수 있음을 이해합니다. 그러나 아래 코드에서 무엇이 잘못되었는지 궁금합니다. 그 유효한 진수 문자 경우 null 문자 ('\u0000')가 반환되는 위의 코드에 대한 documentation 당으로Character.forDigit은 항상 null을 반환합니다.

Character.forDigit('C',16) 

. 무엇이 잘못되었는지 지적하십시오. 기수가 잘못 되었나요? 코드 스 니펫으로 확인했습니다.

if(Character.forDigit('C',16) == '\u0000') { 
    System.out.println("Invalid Character"); 
} 

답변

1

찾고있는 방법은 Character.digit(char ch, int radix)입니다.

if (Character.digit('C',16) == -1) { 
    System.out.println("Invalid Character"); 
} 

Character.forDigit() 다른 사람들이 이미 지적한 것처럼 다른 방식으로 작동합니다.

1

아니요, 사용 방법이 잘못되었습니다.
다음을 시도해보십시오.
Character.forDigit(12,16)
무엇이 잘못되었는지 보겠습니다.

은 참조 :

Character.forDigit(int,int)

1

Character.forDigit(int, int)는 int를 소요하고 당신이 그것을하고있는 등, 주위에 따라 문자가 아닌 다른 방법을 반환합니다.

1

16 진수 문자는 Java에서 '0x'접두어로 표시됩니다. 따라서 유효성 검사 코드는 항상 "유효하지 않은 문자"로 반환됩니다.

접두사와 함께 사용하십시오. 예 :

if(Character.forDigit(0xC,16)=='\u0000'){ 
      System.out.println("Invalid Character"); 
} 
관련 문제