JAVA

[JAVA] 형변환 메서드(3)

jongh0 2025. 5. 19. 18:26

JAVA를 배우면서 코딩테스트라던지 여러 문제 해결에서 변수 자료형과 배열을 통한 문제해결이 필요한 경우가 정말 많다.

이번 게시물은 형변환 및 배열에 대해서 간단히 정리해보도록 하겠다.

 

[형변환]

형변환은 기존에 변수를 선언할때 지정했단 자료형이 아닌 다른 자료형으로의 변환을 말한다.

그럼 "처음부터 자료형을 잘 지정해주면 되는거 아닌가요??" 라고

질문할 수도 있지만 입력은 정수형으로 받고 알고리즘 계산은 문자열로 계산 후 정수형으로 출력해야하는 경우가 정말 많다.

 

예시를 들어 문제를 적어보겠다.

 

fx1) 문자열로 입력받은 두 정수 x와 y에 대해서 어떤 값이 큰지 비교하여 큰 값을 출력하는 코드가 필요하다. 어떤식으로 코드를 구현해야하는가 (x와 y의 범위는 int형 범위 내 이다.)

 

해당 문제에서 x가 "1234" y가 "1235" 라고 할때, 단순히 문자열간에 크기 비교를 하게되면

 

다음과 같이 비교연산자에서 문제가 생기게 된다. 이처럼 char, String 으로된 숫자에 대한 크기 비교가 필요한 경우

정수형으로의 형변환을 필요로 하는데 이때 사용되는 여러 메서드들이 있다.

 

[형변환 메서드]

 

JAVA에는 여러가지 "클래스" 라는게 존재한다. 이중 형변환에도 도움을 주는 클래스들이 존재하는데 

문제에서는 String타입을 int로 변환해야하므로 Integer.parseInt(String)을 사용해야한다.

해당 메서드는 Integer라는 클래스로부터 파라미터로 문자열을 받는 psrseInt라는 메서드를 사용하여 "1234"를 정수형 1234로 리턴하는 메서드로 사용될 수 있다.

 

 

다음과 같이 형변환 메서드를 통해서 기존에 문자열이였던 x와 y가 형변환 메서드를 통해서 조건연산자 사용이 가능해졌고

if문의 조건문이 올바르게 작동할 수 있게 되었다.

 

 

추가로 괄호를 통한 타입 캐스팅 (char형 < > int형)

char alpha = 'a';
int number = 97;

System.out.println((int)alpha);
System.out.println((char)number);

char형과 int형 간의 괄호를 통한 타입캐스팅은 간단하게 가능하다. 하지만 위에서 말한 메서드를 통한 형변환과 다른점이 있다.

괄호를 통한 타입캐스팅의 경우 ASCII에 따른 지정된 값으로 변환되게 된다.

위 코드에서 a라는 문자에 (int)를 통해서 타입캐스팅을 진행했더니 97이 출력되는 모습이다.

 

ASCII 코드표

다음과 같이 괄호를 통한 타입캐스팅은 ASCII 코드표에 의해서 지정된 값으로 변환되므로 필요에 따라서 주의있게 사용해야한다.

'JAVA' 카테고리의 다른 글

[JAVA] 생성자 / 오버로딩 (6)  (1) 2025.05.20
[JAVA] 클래스 / 객체 (5)  (0) 2025.05.20
[JAVA] 배열(4)  (0) 2025.05.20
[JAVA] 조건/반복문 (2)  (0) 2025.05.19
[JAVA] 변수와 연산자 (1)  (0) 2025.05.19