문자열을 더할 때 str += 문자열 말고 StringBuilder, StringBuffer를 사용하자.
StringBuilder와 StringBuffer에 메서드는 동일하다.
// String 클래스와 동일한 메서드
charAt() - 특정 인덱스 위치의 문자 반환
indexOf() / lastIndexOf() - 문자열 검색해서 위치 반환
length() - 문자열 길이 반환
replace() - 검색된 문자열 교체
substring() - 특정 인덱스 범위 내 문자열을 복사해서 새로 생성된 인스턴스 반환
toString() - 문자열 출력
StringBuilder sb = new StringBuilder();
// 문자열 추가
sb.append("abcdefg"); // 출력 : abcdefg
// 시작 ~ 끝 - 1 까지 문자열 삭제
sb.delete(2,4); // 출력 : abefg
// 특정 위치에 문자 삭제
sb.deleteCharAt(0); // 출력 : befg
// 특정 위치에 문자열 삽입
sb.insert(1, "c"); // 출력 : bcefg
// 문자열 뒤집기
sb.reverse(); // 출력 : gfecb
// 특정 위치 문자 변경
sb.setCharAt(0, 'a'); // 출력 : afecb
str.contains(), list.contains()
ArrayList<Integer> list = new ArrayList<>();
for(int i=0; i < 5; i++){
list.add(i);
}
if(list.contains(4)){
System.out.println(true); //true
}
String str = "abcdefg";
if(str.contains("c"))
System.out.println(true); //true
char 배열을 다시 문자열로 new(문자열 배열), String.valueOf(문자열 배열)
String str = "abcdefg";
char[] c = str.toCharArray();
System.out.println(Arrays.toString(c)); // [a, b, c, d, e, f, g]
String str2 = new String(c);
System.out.println("str2 = " + str2); // str2 = abcdefg
String str3 = String.valueOf(c);
System.out.println(str3);
set <-> list 변환
List<String> list = Arrays.asList("L", "L", "I", "S", "T");
System.out.println("list = " + list); // list = [L, L, I, S, T]
// list를 set으로
Set<String> set = new HashSet<>(list);
System.out.println("set = " + set); // set = [S, T, I, L]
//순서는 보장하지 않는다.
list = new ArrayList<>(set);
System.out.println("list = " + list ); // list = [S, T, I, L]
문자열 변환 메서드인 replace()와 replaceAll()
// 아래 예시에서는 두 메서드 모두 같인 "abc"를 반환한다.
String str = "abc1";
String replaceResult = str.replace("1", "");
System.out.println("replaceResult = " + replaceResult);
String replaceAllResult = str.replaceAll("1", "");
System.out.println("replaceAllResult = " + replaceAllResult);
// replace()와 replaceAll()의 차이점은 정규식을 사용할 수 있는지이다.
String str2 = "abbaaaccccabcaaa";
String replaceResult = str2.replace("abc", "?");
String replaceAllResult = str2.replaceAll("[abc]", "?");
System.out.println("replaceResult = " + replaceResult); // replaceResult = abbaaacccc?aaa
System.out.println("replaceAllResult = " + replaceAllResult); // replaceAllResult = ????????????????