개발/Java

[Java] 자바 String 문자열, char 문자를 int 정수로 변환하기

선우. 2024. 5. 21. 15:28

개요

 자바에서 숫자로 주어진 String 문자열 또는 char 문자 한 개를 어떻게 int 정수형으로 변환하는지 알아보겠습니다. 또한 Character 클래스의 getNumericValue 메서드와 digit 메서드를 사용할 때 주의점을 알아보겠습니다.

 

String 문자열을 int 정수로 변환하기

String to int

  1. Integer 클래스의 parseInt(String s) 메서드를 사용합니다.
  2. Integer 클래스의 valueOf(String s) 메서드를 사용합니다.

 

char 문자를 int 정수로 변환하기

char to int

  1. char 문자에서 '0' 을 뺍니다.
  2. Character 클래스의 getNumericValue(char ch) 메서드를 사용합니다.

 

Character getNumericValue vs. digit

Character.getNumericValue(char c)

 getNumericValue 메서드는 자칫하면 음수 값을 반환하기 때문에 주의해서 사용해야 합니다. getNumericValue는 다음의 기준으로 문자를 숫자로 변환합니다.

  • 문자 '0' ~ '9' 는 숫자 0 ~ 9를 반환합니다.
  • 문자 'a' ~ 'z' / 'A' ~ 'Z' 는 대소문자 구분 없이 숫자 10 ~ 35를 반환합니다.
  • 위 범위에 해당하지 않는 문자는 -1을 반환합니다.
  • 문자가 숫자를 나타내지만 양의 정수로 표현할 수 없는 경우 -2를 반환합니다.

 

Character.digit(char c, int radix)

 digit 메서드는 문자가 주어진 radix(진수) 범위 내 숫자라면 해당 숫자를 반환합니다. 그렇지 않다면 -1을 반환합니다.

  • char3의 값인 3은 이진수가 표현할 수 있는 숫자의 범위 [0, 1]를 벗어나므로 -1 입니다.
  • char4의 값인 F는 16진수가 표현할 수 있는 숫자의 범위 [0, 15] 내에 속하므로 F의 값인 15를 반환합니다.

 

Reference