충분히 쌓여가는
StringJoiner, 문자열과 기본형 반환 본문
join()과 StringJoiner
join()은 여러 문자열 사이에 구분자를 넣어서 결합한다
String animals = "dog,cat,bear";
String[] arr = animals.split(","); // 문자열을 ','를 구분자로 나눠서 배열에 저장
String[] str = String.join("-", arr); // 배열의 문자열을 '-'로 구분해서 결합
System.out.println(str); // dog-cat-bear
문자열과 기본형 반환
숫자를 문자열로 바꾸는 방법
int i = 100;
String str1 = i +""; // 100을 "100"으로 변환하는 방법1, 편리함
String str2 = String.valueOf(i); // 100을 "100"으로 변환하는 방법2, 속도 빠름
문자열을 숫자로 바꾸는 방법
int i = Integer.parseInt("100"); // "100"을 100으로 변환하는 방법1
int i2 = Integer.valueOf("100"); // "100"을 100으로 변환하는 방법2, valueOf이지만 기본형 OK
Integer i2 = Integer.valueOf("100"); // 원래는 반환 타입이 Integer, 즉 참조형이다
byte, short를 문자열로 변경할 때는 String valueOf(int i)를 사용하면 된다
표의 왼쪽부분인 valueOf를 사용하는 것이 오른쪽 부분 parse를 외워 사용하는 것보다 좋다
valueOf와 parse는 거의 같긴한데 반환 타입이 다르다(valueOf가 반환하는 것은 참조형, 근데 기본형으로 사용해도 괜찮다 => 오토박싱)
기본형 -> 문자열 | 문자열 -> 기본형 (parse 말고 valueOf 사용해도 됨) |
String String.valueOf(boolean b) String String.valueOf(char c) String String.valueOf(int i) String String.valueOf(long l) String String.valueOf(float f) String String.valueOf(double d) |
boolean Boolean.parseBoolean(String s) byte Byte.parseByte(String s) short Short.parseShort(String s) int Integer.parseInt(String s) long Long.parseLong(String s) float Float.parseFloat(String s) double Double.parseDouble(String s) |
코드
String.join은 내부적으로 StringBuffer을 사용하기 때문에 속도가 더 빠르다
public class StringJoinerTest {
public static void main(String[] args) {
int iVal = 100;
String strVal = String.valueOf(iVal); // int를 String으로 변환한다.
// String strVal = iVal+""; // int를 String으로 변환한다.
double dVal = 200.0;
String strVal2 = dVal + ""; // int를 String으로 변환하는 또 다른 방법
// 문자열을 숫자로 바꾸는 방법, 두 줄 다 같다
double sum = Integer.parseInt("+"+strVal) + Double.parseDouble(strVal2);
double sum2 = Integer.valueOf(strVal) + Double.valueOf(strVal2);
System.out.println(String.join("#",strVal,"+",strVal2,"=")+sum); // 내부적으로 StringBuffer 사용
System.out.println(strVal+"+"+strVal2+"="+sum2);
}
}
100#+#200.0#=300.0
100+200.0=300.0
'Java > JAVA2' 카테고리의 다른 글
StringBuffer 클래스의 메서드 (0) | 2023.06.28 |
---|---|
StringBuffer 클래스 (0) | 2023.06.27 |
String 클래스의 생성자와 메서드 (0) | 2023.06.26 |
String 클래스, 문자열 비교, 빈 문자열 (0) | 2023.06.26 |
Object 클래스와 equals(), equals(Object obj)의 오버라이딩 (0) | 2023.06.25 |