Hello

Java StringJoiner, 문자열과 기본형 변환

by 볼빵빵오춘기

join()과 StringJoiner

join은 여러 문자열 사이에 구분자를 넣어서 결합한다.

 

예제

예제1

String animals = "dog,cat,bear";
String[] arr = animals.split(","); // 문자열을 ','을 구분자로 나눠서 배열에 저장
String str = String.join("-",arr); // 배열의 문자열을 '-'로 구분해서 결합
System.out.println(str); // dog-cat-bear

 

예제1

int val1 = 100;
int val2 = 200;
int sum = val1+val2;

System.out.println(String.join(""+val1,"+",val2,"=")+sum); // 100+200=300

⇒ 연결문자1구분자연결문자2 이런식으로 반환된다. 예제결과보면서 생각해보기
⇒ 이해가 안될지 구분자에 “”→“*”이런식으로 변경해서 보면 이해가 더 빠를듯하다.

 

문자열과 기본형 간의 변환

숫자를 문자열로 바꾸는 방법

int i = 100;
String str1 = i + ""; // 방법1
String str2 = String.valueOf(i); // 방법2

⇒ 방법1보다 방법2가 속도가 빠르다.

⇒ 방법1이 직관적으로 보이기 때문에 편리하나 프로그램이 속도가 안나면 방법2로 바꾸는것도 나쁘지않다.

※ byte, short을 문자열로 변환할 때는 String valueOf(int i)를 사용하면 된다.

 

문자열을 기본형으로 바꾸는 방법

String str = "123";
Integer.parseInt(str); // 방법1
Integer.valueOf(str); // 방법2

 기본형 들을 valueOf() 바꿔 쓸 수 있고 valueOf()로 바꿔쓰는걸로 추세이다.

 why? Boolaen, Byte,…. 등등 변환시 하나로 통일 시키기 위함 (아래 예제 참고)

 

※ valueOf()를 이용하지않고 문자를 기본형으로 바꿀 때 (= 위의 Integer.pasrseInt()을 이용한 것처럼)

더보기
  • boolean으로 변환할
Boolean.parseBoolean(String s)

 

  • byte로 변환할 때
Byte.parseByte(String s)

 

  • short로 변환할 때
Short.parseShort(String s)

 

  • int로 변환할 때
Integer.parseInteger(String s)

 

  • long로 변환할 때
Long.parseLong(String s)

 

 

  • float로 변환할 때
Float.parseFloat(String s)

 

  • double로 변환할 때
Double.parseDouble(String s)
더보기

위에 valueOf()를 이용하지않고 문자를 기본형으로 바꿀 때를 보면 알겠지만 규칙이 있다. 

변환할려는 기본타입의 Wrapper클래스.parse변환할려는 기본타입의 Wrapper클래스()

 Wrapper클래스 : 자바 기본형을 클래스화 시킨 것! 기본 데이터형을 값이 아닌 객체로 사용할  있도록 해준다.

 Wrapper클래스 int를 제외한 나머지는 이름이 동일하나 앞에 문자만 대문자 

기본형 Wrapper클래스
byte Byte
short Short

...

int Integer

자세한 부분은 추후 올릴 예정이기에 우선 이 정도로 알고있기!

 

예제

public class Ex8_4 {

	public static void main(String[] args) {
		int iVal = 100;
		String strVal = iVal + "";
		
		double dVal = 200.0;
		String strVal2 = dVal + "";
		
		double sum  = Integer.parseInt(strVal)+ Double.valueOf(strVal2);
		double sum2 = Integer.valueOf(strVal)+ Double.valueOf(strVal2);
		
		System.out.println(String.join("",strVal,"+",strVal2,"=")+sum);
		System.out.println(strVal+"+"+strVal2+"="+sum2);
	}
	
}
100+200.0=300.0
100+200.0=300.0

 

 

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기