valueOf()
여러 기본 타입을 String 클래스로 변경할 수 있도록 정적 메소드를 메소드 오버로딩 형태로 제공합니다.
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
public static String valueOf(Object obj) { ... }
public static String valueOf(char data[]) { ... }
public static String valueOf(boolean b) { ... }
public static String valueOf(char c) { ... }
public static String valueOf(int i) { ... }
public static String valueOf(long l) { ... }
public static String valueOf(float f) { ... }
public static String valueOf(double d) { ... }
// ...
}
조금 더 디테일하게 살펴보면,
각 타입에 해당하는 Wrapper 클래스를 활용하여 toString() 메소드를 활용하는 것을 볼 수 있습니다.
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
public static String valueOf(int i) {
return Integer.toString(i);
}
예시
기본 타입 → String 클래스
// 기본타입
char c = 'A';
char data[] = {'H','E','L','L','O'};
boolean b = true;
int i = 10;
long l = 100;
float f = 1.0f;
double d = 2.0;
String charToStr = String.valueOf(c);
String charArrToStr = String.valueOf(data);
String booleanToStr = String.valueOf(b);
String intToStr = String.valueOf(i);
String longToStr = String.valueOf(l);
String floatToStr = String.valueOf(f);
String doubleToStr = String.valueOf(d);
System.out.println(charToStr);
System.out.println(charArrToStr);
System.out.println(booleanToStr);
System.out.println(intToStr);
System.out.println(longToStr);
System.out.println(floatToStr);
System.out.println(doubleToStr);
Object → String 클래스
// Object
List<String> arrayList = new ArrayList<>();
arrayList.add("A");
arrayList.add("B");
arrayList.add("C");
Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("kim", 13);
hashMap.put("lee", 18);
hashMap.put("kang", 11);
String listToStr = String.valueOf(arrayList);
String mapToStr = String.valueOf(hashMap);
System.out.println(listToStr); // [A, B, C]
System.out.println(mapToStr); // {lee=18, kang=11, kim=13}
사용자 정의 객체 → String 클래스
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Person {
private String name;
private Integer age;
public Person(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
@Override
public String toString() {
// Jackson 라이브러리 활용하여 Json String으로 반환
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.writeValueAsString(this);
} catch (JsonProcessingException e) {
return "null";
}
}
}
Person person = new Person("veneas", 25);
String objToStr = String.valueOf(person);
System.out.println(objToStr); // {"name":"veneas","age":25}
'Backend > Java' 카테고리의 다른 글
[Java] 문자열의 공백 제거하기(trim, strip, replace) (0) | 2022.05.04 |
---|---|
[Java] 문자열 값이 비어있는지 확인하기(isEmpty, isBlack, hasText) (0) | 2022.05.03 |
[Java] 중첩 클래스의 접근 제한 (0) | 2022.04.27 |
[Java] 중첩 클래스 (0) | 2022.04.26 |
[Java] 인터페이스 확장 (디폴트 메소드의 필요성) (0) | 2022.04.25 |