문자열을 숫자로 바꾸는 방법을 사용했는데 오류가 발생했다.
해당 메소드는 "문자열(String)"만을 숫자로 바꿀 수 있으니 문자하나를 바꾸게 하려면 해당방법을 사용하지 못한다고 오류가 떴다. 그래서 문자열(String)이 아닌 문자(Character)를 숫자로 변환하려면 어떻게 해야할지 정리해보고 둘의 차이점을 비교해보려고한다.
Character.getNumericValue()
변수 타입이 String이 아닌 Character일때는 parseInt() 메서드를 사용하면 컴파일 오류가 발생한다. parseInt() 메서드에서는 문자열을 인수로 받아야 하기 떄문이다.
따라서 Character 타입일때 숫자(Int)로 바꾸려면 Character.getNumericValue()를 사용하면 된다.
public class CharToInt{
public static void main(String[] args){
Char str1 = "12345";
Char str2 = "-12345";
int num1 = Character.getNumericValue(str1);
int num2 = Character.getNumericValue(str2);
System.out.println(num1);
System.out.println(num2);
}
}
//출력
12345
-12345
Character.getNumericValue()와 Integer.parseInt()의 차이점
-- Character.getNumericValue()는 문자(Character)를 정수(Int)로 변환할 때 사용한다.
-- nteger.parseInt()는 문자열(String)을 정수(Int)로 변환할 때 사용한다.
둘 다 문자형을 정수로 변환하는 것은 맞지만 변경 전 초기 타입이 다르다는 차이점이 존재한다.
char_str 변수를 문자열로 변환하여 parseInt 메서드에 전달하는 것이 가능하지만 Character.getNumericValue()를 사용하면 문자(Character)를 바로 정수(Int)로 변환할 수 있어서 더 간단하고 효율적이다.
char char_str = '7'; // 문자 '7'
int int1 = Integer.parseInt(String.valueOf(char_str)); // 이 코드는 컴파일됩니다.
int int2 = Character.getNumericValue(char_str); // 이 코드도 컴파일됩니다.