java.lang.Integer 클래스의 toString() 메서드는 정수 값을 문자열(String) 객체로 변환하여 반환하는 메서드입니다. Integer 클래스에는 총 세 가지 형태의 toString() 메서드가 제공되며, 각각 용도와 매개변수가 다릅니다. 이번 글에서는 세 가지 메서드를 하나씩 살펴보고 실제 동작 결과까지 확인해 보겠습니다.
1. String toString()
java.lang.Integer.toString()은 해당 Integer 객체가 가진 값을 10진수 문자열 표현으로 반환하는 인스턴스 메서드입니다. 별도의 매개변수 없이 호출하며, 가장 기본적인 형태입니다.
예제
import java.lang.*;
public class Demo {
public static void main(String[] args) {
Integer i = new Integer(20);
// 정수 값을 10진수 문자열로 반환
String retval = i.toString();
System.out.println("Value = " + retval);
}
}실행 결과
Value = 20
2. static String toString(int i)
Integer.toString(int i)는 static 메서드로, 매개변수로 전달된 정수 i를 10진수 문자열로 변환하여 반환합니다. Integer 객체를 생성하지 않고도 클래스 이름으로 바로 호출할 수 있어 편리합니다.
예제
import java.lang.*;
public class Demo {
public static void main(String[] args) {
// 지정된 정수 30을 10진수 문자열로 반환
String retval = Integer.toString(30);
System.out.println("Value = " + retval);
}
}실행 결과
Value = 30
3. static String toString(int i, int radix)
Integer.toString(int i, int radix)는 첫 번째 인수 i를 두 번째 인수 radix(진법)에 해당하는 문자열 표현으로 변환하여 반환합니다.
만약 radix 값이 Character.MIN_RADIX(2)보다 작거나 Character.MAX_RADIX(36)보다 크면, 자동으로 10진법이 적용됩니다. 이 메서드를 활용하면 2진수, 8진수, 16진수 등 다양한 진법으로 손쉽게 변환할 수 있습니다.
- i: 변환할 정수
- radix: 문자열 표현에 사용할 진법(기수)
예제
import java.lang.*;
public class Demo {
public static void main(String[] args) {
// 10진수(radix 10)로 변환
String retval = Integer.toString(30, 10);
System.out.println("Value = " + retval);
// 16진수(radix 16)로 변환
retval = Integer.toString(30, 16);
System.out.println("Value = " + retval);
// 8진수(radix 8)로 변환
retval = Integer.toString(30, 8);
System.out.println("Value = " + retval);
}
}실행 결과
Value = 30 Value = 1e Value = 36
마무리 정리
세 가지 toString() 메서드의 차이를 간단히 요약하면 다음과 같습니다.
- toString(): 자신의 Integer 객체 값을 10진수 문자열로 반환
- toString(int i): 전달받은 정수를 10진수 문자열로 반환
- toString(int i, int radix): 전달받은 정수를 지정한 진법의 문자열로 반환
참고로 new Integer(20)과 같은 생성자 방식은 Java 9부터 deprecated(사용 중단 권고)되었으므로, 실무에서는 Integer.valueOf(20)을 사용하는 것이 좋습니다. 또한 단순히 정수를 문자열로 바꿀 때는 String.valueOf(i)나 i + "" 같은 방법도 널리 활용됩니다.