: 문자열 리터럴을 만드는 방법과, 객체의 생성자를 이용할 수 있다.
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
}
}
: 이클립스의 기본 인코딩 방식은 "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));
}
}
: 기본형 타입을 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진수 입니다 라는 뜻
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);
}
}