Java/문자열

[Java]정수를 문자열로 변환(Int to String)

DevStory 2022. 4. 10.

Java에서 정수를 문자열로 변환하는 작업은 빈번하게 발생합니다. 반대로 문자열을 정수로 변환하는 방법도 마찬가지입니다.

 

이번 포스팅은 Java에서 정수를 문자열로 변환하는 여러 방법들을 소개합니다.


정수를 문자열로 변환

int 또는 Integer를 String으로 변환하기 위해 String 클래스는 몇 가지 메서드(valueOf(), format())를 제공합니다. 또 다른 방법으로 Integer 클래스의 toString() 메서드가 존재하며 StringBuilder 객체로 변환해야하는 경우 append() 메서드와 toString() 메서드를 함께 사용할 수 있습니다.


String.valueOf() 메서드

valueOf() 메서드는 전달받은 값을 String으로 변환합니다. valueOf() 메서드는 정수 타입 이외에도 Object, char[], boolean, char, int, long, float, double 타입의 값을 String으로 변환할 수 있습니다.

int num = 15000;

String str1 = String.valueOf(num);
String str2 = Integer.toString(num);

System.out.println(str1.equals(str2));
System.out.println(str1 == str2);
System.out.println(str1);
System.out.println(str2);

실행 결과

true
false
15000
15000

String.valueOf() 메서드와 Integer.toString() 메서드 둘 다 문자열로 변환된 값을 반환합니다. equals() 메서드를 사용하여 값을 비교하면 true가 반환되고 == 연산자를 사용하여 값을 비교하면 false가 반환됩니다. 문자열 값은 동일하지만 문자열 값이 위치하는 주소가 다르기 때문입니다.


Integer.toString() 메서드

Integer 클래스의 toString() 메서드는 전달받은 정수 값을 String 객체로 변환합니다. String.valueOf() 메서드와 달리 int형 값만 변환할 수 있습니다.

int num = 15000;

String str = Integer.toString(num);

System.out.println(str);

실행 결과

15000
반응형

String.format() 메서드

String 클래스의 format() 메서드는 format 형식이 설정된 문자열을 반환합니다. 다양한 format 형식이 존재하지만 이번 포스팅에서는 정수를 문자열로 변환하는 방법이 핵심이므로 정수와 관련된 format 형식을 소개합니다.

정수와 관련된 format 형식
%d - 10진수 정수
%o - 8진수 정수
%x - 16진수 문자열

다음은 int형 값을 8진수, 10진수, 16진수 문자열로 변환하는 예제입니다.

int num = 15000;

String str8 = String.format("%o", num);
String str10 = String.format("%d", num);
String str16 = String.format("%x", num);

System.out.println("8진수: " + str8);
System.out.println("10진수: " + str10);
System.out.println("16진수: " + str16);

실행 결과

8진수: 35230
10진수: 15000
16진수: 3a98

 

String.format() 메서드는 format 형식으로 변환할 수 없는 경우 IllegalFormatConversionException 예외가 발생합니다. 다음 예제는 Date객체를 8진수로 변환할 수 없으므로 IllegalFormatConversionException 예외가 발생합니다.

Date date = new Date();

String str8 = String.format("%o",date);

System.out.println("8진수: " + str8);

StringBuilder 및 StringBuffer

StringBuilder와 StringBuffer는 단일 문자열을 연결하는데 사용되는 클래스입니다. append() 및 toString() 메서드를 함께 사용하여 정수를 문자열을 변환할 수 있습니다.

int num = 15000;

String stringBuilderToStr = new StringBuilder().append(num).toString();
String stringBufferToStr = new StringBuffer().append(num).toString();

System.out.println(stringBuilderToStr.equals(stringBufferToStr));
System.out.println(stringBuilderToStr == stringBufferToStr);
System.out.println(stringBuilderToStr);
System.out.println(stringBufferToStr);

실행 결과

true
false
15000
15000
반응형

댓글