개발자꿈나무

String 클래스 본문

자바

String 클래스

망재이 2023. 1. 25. 22:54
  • join()과 StringJoiner

- join()은 여러 문자열 사이에 구분자를 넣어 결합한다. split()과 반대로 생각하면 쉬움!

String animals = "dog,cat,bear";
String[] arr = animals.split(",");
String str = String.join("-", arr);
// str : dog-cat-bear;

- java.util.StringJoiner클래스를 사용해서 문자열 결합도 가능!

StringJoiner sj = new StringJoiner("," , "[" , "]"); // ,단위로 charsequence 시작 끝
String[] strArr = { "aaa", "bbb", "ccc" };

for(String s : strArr) {
	sj.add(s.toUpperCase()); }
    
System.out.println(sj.toString()); // [AAA,BBB,CCC]

 

  • 문자 인코딩 변환하기

- getBytes(String charsetName)를 사용하면, 문자열의 문자 인코딩을 다른 인코딩으로 변경할 수 있다.

//짧은 예시
byte[] utf8_str = "가".getBytes("UTF-8"); // 문자열을 UTF-8로 변환
String str = new String(utf8_str, "UTF-8"); // byte배열을 문자열로 변환
public static void main(String[] args) throws UnsupportedEncodingException
	{
		String str = "가";
		
		byte[] bArr = str.getBytes("UTF-8");
		byte[] bArr2 = str.getBytes("CP949");
		
		System.out.println("UTF-8: "+new String(bArr,"UTF-8"));
		System.out.println("CP949: "+new String(bArr2,"CP949"));
        //java.lang.String.String(byte[] bytes, String charsetName
	}

 

  • String.format() 

- 형식화된 문자열을 만들어내는 간단한 방법으로 printf()하고 사용법이 같음

String str = String.format("%d 더하기 %d는 %d입니다.", 3, 5, 3+5);
System.out.println(str); // 3 더하기 5는 8입니다.

 

  • 기본값과 String과의 변환

- 기본값 ==> String : 숫자에 빈 문자열을 더해주거나 valueOf()를 사용하면 간단!

int i = 100;
String str1 = i + ""; // 100 ==> "100"
String str2 = String.valueOf(i); // 100 ==> "100"

- String ==> 기본값 : 마찬가지로 valueOf()를 쓰거나 parseInt()를 사용하면 된다.

// 여러 가지 방법 사용해보기
public static void main(String[] args) 
	{
		int iVal = 100;
		String strVal = String.valueOf(iVal); // int를 String으로 변환 
		
		double dVal = 200.0;
		String strVal2 = dVal + ""; // String으로 변환하는 다른 방법
		
		double sum = Integer.parseInt("+".trim()+strVal+Double.parseDouble(strVal2));
		double sum2 = Integer.valueOf(strVal+Double.valueOf(strVal2));
		
		System.out.println(String.join("",strVal,"+",strVal2,"=")+sum);
		System.out.println(strVal+"+"+strVal2+"="+sum2);
	}

 

  • substring() 

- 한 문자열에서 내용의 일부를 추출할 때 사용

- substring(int start, int end)를 사용할 때 start는 범위에 포함이 되지만 end는 결과에 포함되지 않는다.

public static void main(String[] args) 
	{
		String fullName = "Hello.java";
		
		//fullName에서 '.'의 위치 찾는다.
		int index = fullName.indexOf('.');
		
		//fullName의 첫번째 글자부터 '.'이 있는 곳까지 문자열 추출.
		String fileName = fullName.substring(0, index);
		
		//'.'의 다음 문자부터 시작해서 문자열의 끝까지 추출.
		String ext = fullName.substring(index+1);
		
		System.out.println(fullName + "의 확장자를 제외한 이름은 "+fileName);
		System.out.println(fullName + "의 확장자는 "+ext);
        //Hello / java
	}
728x90