자바에서 문자열은 java.lang 패키지의 String 클래스로 표현됩니다. 프로그램 내의 모든 문자열 리터럴(예: "abc")은 모두 이 클래스의 인스턴스로 구현되며, String 객체는 한 번 생성되면 그 값을 변경할 수 없는 불변(immutable) 객체라는 특징이 있습니다.
String 클래스의 valueOf() 메소드는 char, char 배열, double, float, int, long 또는 객체를 매개변수로 받아 해당 값의 문자열(String) 표현을 반환합니다. 다양한 타입의 데이터를 손쉽게 문자열로 변환해야 할 때 가장 널리 사용되는 메소드 중 하나입니다.
valueOf() 메소드의 주요 오버로딩 형태
- valueOf(boolean b)
- valueOf(char c)
- valueOf(char[] data)
- valueOf(double d)
- valueOf(float f)
- valueOf(int i)
- valueOf(long l)
- valueOf(Object obj)
예제 1: double 값을 문자열로 변환하기
import java.util.Scanner;
public class ConversionOfDouble {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a double value:");
Double d = sc.nextDouble();
String result = String.valueOf(d);
System.out.println("The result is: " + result);
}
}
실행 결과
Enter a double value: 2548.2325 The result is: 2548.2325
사용자로부터 입력받은 double 값을 String.valueOf() 메소드에 전달하면 해당 숫자가 그대로 문자열 형태로 변환되어 출력됩니다.
예제 2: 다양한 타입을 문자열로 변환하기
public class Test {
public static void main(String args[]) {
float floatVal = 2569.336f;
System.out.println(String.valueOf(floatVal));
double doubleVal = 2569.336;
System.out.println(String.valueOf(doubleVal));
int intVal = 5548;
System.out.println(String.valueOf(intVal));
boolean boolVal = true;
System.out.println(String.valueOf(boolVal));
char charVal = 'K';
System.out.println(String.valueOf(charVal));
}
}
실행 결과
2569.336 2569.336 5548 true K
위 예제에서 확인할 수 있듯이 valueOf() 메소드는 float, double, int, boolean, char 등 어떤 타입이든 전달받은 값을 그대로 문자열로 변환하여 반환합니다.
마무리
String.valueOf() 메소드는 기본형 데이터나 객체를 문자열로 변환할 때 가장 간편하고 안전한 방법입니다. 참고로 null인 객체를 전달하면 NullPointerException이 발생하는 대신 "null"이라는 문자열을 반환한다는 점까지 기억해 두면 실무에서 더욱 유용하게 활용할 수 있습니다.