5-1. java.lang 패키지_String

zhyun·2020년 9월 2일
0

java

목록 보기
9/11

String

  • 다른언어에서는 문자열을 char형 배열로 다룬다. 하지만 java에서는 문자여를
    다룰 수 있는 String클래스를 제공한다.
  • 문자열을 합칠때는 합쳐진 문자열을 저자할 인스턴스 생성된다.

1. 문자열의 비교

: 문자열 리터럴을 만드는 방법과, 객체의 생성자를 이용할 수 있다.

  • ex)
		public class StringTest01 {
		public static void main(String[] args) {
		String str1 = "abc"; //리터럴
		String str2 = "abc"; 
		
		System.out.println(str1 == str2); //true
		System.out.println(str1.equals(str2)); //true
		
		String str3 = new String("abc"); // 인자값
		String str4 = new String("abc");
		
		System.out.println(str3 == str4); // new new니까 당연히 false
		System.out.println(str3.equals(str2));//안에 들어있는 값을 비교 equals()가 오버라이드 true
		
		
	}
}

2. 인코딩 변환

: 이클립스의 기본 인코딩 방식은 "MS949"
: 한글 윈도우의 기본 인코딩 방식은 "CP949"
: 우리가 사용하는 인코딩 방식은 "UTF-8"
*ex)

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

public class FileEncodingTest {
	public static void main(String[] args) throws UnsupportedEncodingException {
//		String str = "ab";
		String str = "가나";
		
		byte[] cpstr = str.getBytes("CP949");
		byte[] msstr = str.getBytes("MS949");
		byte[] utfstr = str.getBytes("UTF-8");
		
		System.out.println(Arrays.toString(cpstr));
		System.out.println(Arrays.toString(msstr));
		System.out.println(Arrays.toString(utfstr));
	}
}

3. 문자열 format

: 기본형 타입을 String타입으로 변환
1) 빈문자열을 더하는 방식
int a =10;
String b = a + "";

2) valueOf메서드
String b = String.valueOf(a);
: String타입을 기본형으로 변환 방식 아래 두가지 방법

  • -1) wrapper클래스를 이용하는 방식
    String b = "123";
    int c = Integer.parseInt(b); // 문자열을 기본형 int타입으로 값으로 변경
    int c = Integer.valueOf(b); // 문자열 , 바이트형 등등 통틀어서 합친거 Integer.valueOf();

  • 2) wrapper클래스의 진수
    String b ="234";
    int c = Integer.parseInt(b,8); // 234가 8진수 입니다 라는 뜻

ex) 문자열 합치기 StringBuffer 사용하기

package h_javaLang;

public class StringBufferTest { // 문자열 합치기 StringBuffer 사용하기
	public static void main(String[] args) {
		/*
		String str = "a";
		str += "a";
		str += "a";
		str += "a";
		str += "a";
		
		String str = "a";
		str = new StringBuffer(str).append("a").toString(); // str에 a를 계속 더한다는 뜻 (append)
		str = new StringBuffer(str).append("a").toString(); 
			
		*/
		
//		String str = "a";
//		long start = System.currentTimeMillis();
//		for(int i = 0; i< 300000; i++){ // "a" 3만번 더하기
//			str += "a";
//		}
//		long end = System.currentTimeMillis();
//		System.out.println(end-start); // 걸리는 시간이 나옴
		
		StringBuilder sb = new StringBuilder("a");
		long start = System.currentTimeMillis();
		for(int i = 0; i< 300000000; i++){
			sb.append("a");
		}
		long end = System.currentTimeMillis();
		System.out.println(end - start);
		
	}

}
profile
HI :)

0개의 댓글