java.lang.Character.digit()
해당 문자가 특정 범위 안에 있는 숫자라면 문자가 아닌 숫자로 변환해서 반환한다.
public static int digit(char ch, int radix)
- ch : 변환할 문자
- radix : 기수.
ch가 radix 안에 있는 유효한 숫자가 아니거나, radix의 범위가 MIN_RADIX <= radix <= MAX_RADIX 안에 있지 않다면 -1을 반환한다.
ex)
char c1 = '1';
char c2 = '5';
char c3 = 'c';
System.out.println(c1 + " : " + Character.digit(c1, 5));
System.out.println(c2 + " : " + Character.digit(c2, 5));
System.out.println(c1 + " & range=10 : " + Character.digit(c2, 10));
System.out.println(c3 + " : " + Character.digit(c3, 10));
실행 결과)

radix로 넘긴 값이 문자로 저장된 숫자의 값보다 크면 숫자로 변환할 수 있는 것 같다. c1의 경우 radix은 5이고 ch는 1이므로 radix > ch라서 무사히 결과가 나온다. 하지만 c2, c3의 경우에는 ch의 값보다 radix의 값이 크거나 같아서 숫자 변환에 실패한다. 그리고 당연하지만, 문자가 숫자가 아닐 경우에는 변환에 실패한다.
java.lang.Character.isDigit()
해당 문자가 숫자인지 아닌지를 검사한다.
ex)
char c1 = '1';
char c3 = 'c';
System.out.println(c1 + " : " + Character.isDigit(c1));
System.out.println(c3 + " : " + Character.isDigit(c3));
실행 결과)

c1에 저장된 값은 '1'로 숫자이므로 true, c3에 저장된 값은 'c'로 문자이므로 false가 출력된다.
'java' 카테고리의 다른 글
[210209] java StringTokenizer (0) | 2021.02.09 |
---|---|
[210127] java Deque (0) | 2021.01.27 |
[210120] Java Optional (0) | 2021.01.20 |
[210118] java Stream (1) - stream 정의와 관련 메소드 (0) | 2021.01.18 |
[210117] JAVA 대소문자 관련 String 메소드 (0) | 2021.01.17 |