반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 대이터
- pycharm
- 재귀함수
- classification
- CES 2O21 참가
- KNeighborsClassifier
- html
- C언어
- discrete_scatter
- broscoding
- bccard
- 웹 용어
- mglearn
- 데이터전문기관
- cudnn
- vscode
- paragraph
- inorder
- postorder
- CES 2O21 참여
- web 사진
- web
- 머신러닝
- java역사
- web 용어
- 자료구조
- web 개발
- Keras
- tensorflow
- 결합전문기관
Archives
- Today
- Total
bro's coding
java.String/StringBuilder 본문
반응형
String 과 StringBuilder
String
문자열 상수, 변하지 않는 속성
문자열 상수 영역(literal pool)에 저장되고 이를 공유해 사용 >메모리 절약
문자열에 변화를 가하면 새로 생성
동일한 문자열이 여러번 사용될 때 적합
StringBuilder
변하는 속성
문자열 자체가 변경
문자열 자체가 자주 변경될 때 적합
(StringBuilder와 StringBuffer는 동일하지만, StringBuffer는 thread-safe (동기화 처리)한 특징이 있음)
package step3;
public class TestStringAndStringBuilder {
public static void main(String[] args) {
String s1 = "아이유";
System.out.println(s1.concat("짱"));// 새로 생성, String은 변하지 않음 / 아이유짱
System.out.println(s1);// 아이유
StringBuilder sb = new StringBuilder("박보검");
System.out.println(sb);// StringBuilder는 가변(변경시 자체가 저장됨) / 박보검
System.out.println(sb.append("짱"));// 박보검짱
System.out.println(sb);// 박보검짱
}
}
package test1;
import java.util.StringTokenizer;
public class TestStringAndStringBuilder {
public static void main(String[] args) {
// name1과 name2는 String이기 때문에 문자열 상수영역에 저장되고 동일한 문자열을 참조
String name1 = "고슬링";
String name2 = "고슬링";
System.out.println(name1.concat("선생님"));
System.out.println(name1);
System.out.println(name2);
StringBuilder sb = new StringBuilder("아이유");
System.out.println(sb);
System.out.println(sb.append("가수"));
System.out.println(sb);
// 문자열 비교
String name3 = new String("고슬링");
System.out.println(name3);
System.out.println(name1 == name3); // false == 연산자로는 문자열 비교x
System.out.println(name1.equals(name3));
StringBuilder sb2 = new StringBuilder("고슬링");
/*
* name3은 STirng, sb2는 StringBuilder이므로 sb2.toString()을 하면 String으로 변환되고 이를 통해
* equals로 비교하면 됨 or contentEquals를 이용
*/
System.out.println(name3.equals(sb2));// false
System.out.println(name3.equals(sb2.toString()));// true
// 타입이 다른 문자열의 내용을 비교
System.out.println(name3.contentEquals(sb2));// true
System.out.println("***********String API method 활용*************");
String name4 = "강하늘";
System.out.println(name4.startsWith("강하"));// true
System.out.println(name4.startsWith("강"));// true
System.out.println(name4.endsWith("늘"));// true
System.out.println(name4.contains("하"));// true
System.out.println(name4.indexOf("늘"));// 2
System.out.println(name4.indexOf("크"));// -1
System.out.println(name4.substring(1));// 하늘 / 1:beginIndex
String name5 = "제임스 고슬링";
System.out.println(name5.substring(4, 6));// 고슬
System.out.println("***********StringBuilder API method 활용*************");
StringBuilder sname = new StringBuilder("제임스");
System.out.println(sname.append(" 고슬링"));
StringBuilder test = new StringBuilder("뻐이장가가니");
System.out.println(test.reverse());
System.out.println("***********StringTokenizer 활용*************");
String info="아이유,강하늘,옹성우";
StringTokenizer stk=new StringTokenizer(info,",");
while(stk.hasMoreTokens()) {
System.out.println(stk.nextToken());
/*
아이유
강하늘
옹성우
*/
}
}
}
반응형
'[IT] > java' 카테고리의 다른 글
java.IO.File/Directory (0) | 2021.03.12 |
---|---|
java.switch (0) | 2021.03.11 |
java.label (0) | 2021.03.11 |
java.IO(입출력) (0) | 2021.03.11 |
java.Exception Handling(예외 처리).Unchecked Exception (0) | 2021.03.10 |
java.Exception Handling(예외 처리).throw.UserDefineException(사용자 정의 예외) (0) | 2021.03.10 |
java.Exception Handling(예외 처리).throw (0) | 2021.03.10 |
java.Exception Handling(예외 처리).throws (0) | 2021.03.10 |
Comments