Notice
Recent Posts
Recent Comments
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

StringJoiner, 문자열과 기본형 반환 본문

Java/JAVA2

StringJoiner, 문자열과 기본형 반환

빌드이너프 2023. 6. 26. 22:42

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