#String 클래스

String s = "mylimeorange";
String t = new String("mylimeorange");
String x = "mylimeorange";

new로 만들면 heap에 객체가 생성된다.
s 처럼 값을 그냥 주면 class area 안에 있는 Constant Pool 에 저장한다.


if(s == t) { //주소 비교하는거라 false
    System.out.println("s==t"); //false
}


if(s.equals(t)) { //내용 비교 String 에서 equals는 내용 비교이다. 기본 Object 에서는 주소비교이다 (재정의 한거임 )
    System.out.println("s.equals(t)"); //true
}

if(s==x) { //주소를 비교하는데 constant pool 에 같은 "mylimeorange" 을 가리키고 있다.
    System.out.println("s==x");
}
String 클래스는 원본의 값을 바꿀수 없다.


s.toUpperCase();
System.out.println(s); //대문자로 바꿔라.
String은 값이 하나 들어가면 원본데이터를 바꿀수가 없다

String a=s.toUpperCase();
System.out.println(a);
이런식으로 따로 저장해서 따로 생성된 값을 사용해야한다.

s=s+"gogogo";
System.out.println(s);
s 는 mylimeorangegogogo 를 가리키게 된다.


#String 메소드

String s = "mylimeorange";
s.length() -문자열의 길이를 출력해주는
s.charAt(3) -인덱스가 3번인 글자 하나
s.isEmpty() - 비어있니?
s.startsWith("m")- m으로 시작하니?
s.endsWith("e") -e로 끝나니?
s.substring(2,6) - 문자열 분할 2번 인덱스 부터 5번 인덱스 까지
s.substring(7) - 7번 인덱스 부터 끝까지
s.contains("r") - 문자열 r 을 포함하니?


#concat()

문자열 뒤에 추가시켜주는 경우
String q =s.concat("hello");
//s.concat("hello");
System.out.println(q);



+ Recent posts