더 많이 실패하기

코딩공부 65일차: 자바의 정석 / 자바의 정석 107~110강 / 9장 java.lang패키지와 유용한 클래스 본문

자바/자바의정석

코딩공부 65일차: 자바의 정석 / 자바의 정석 107~110강 / 9장 java.lang패키지와 유용한 클래스

김발자~ 2022. 10. 3. 18:41
반응형

개발 공부 65일차

자바의 정석 기초편 강의

https://www.youtube.com/watch?v=oJlCC1DutbA&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 

 

 

총 171개의 강의로 구성되어 있다

총 강의 시간은 80시간 정도

 

 

강의는 기초편을 기준으로 제작되어 있지만,

http://www.yes24.com/Product/Goods/24259565

 

Java의 정석 - YES24

최근 7년동안 자바 분야의 베스트 셀러 1위를 지켜온 `자바의 정석`의 최신판. 저자가 카페에서 12년간 직접 독자들에게 답변을 해오면서 초보자가 어려워하는 부분을 잘 파악하고 쓴 책. 뿐만 아

www.yes24.com

링크로 첨부한 자바의 정석 3판으로도 무리가 없다는 댓글이 있어 그대로 진행

 

 

 

 

 


ch 9 - 11 String 생성자

(3판 기준 468~471쪽)

https://www.youtube.com/watch?v=3cqJz9hIPD8&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=107 


 

String 클래스의 생성자와 메서드

메서드 엄청 많다(교재 2쪽 반 정도)
익숙하지 않은 것들만 뽑아서 표로 정리

메서드/설명 예제 결과
int compareTo(String str)
문자열(str)과 사전순서로 비교
같으면 0 이전이면 음수 이후면 양수
int i = "aaa".compareTo("aaa");
int i2 = "aaa".compareTo("bbb");
int i3 = "bbb".compareTo("aaa");
i = 0; (값이 같다)
i2 = -1; (오른쪽이 크다)
i3 = 1; (왼쪽이 크다)
boolean contains(*CharSequence s)
지정된 문자열(s)dl 포함되었는지 검사
String s = "abcdefg";
boolean b = s.contains("bc");
b = true;
boolean endsWith(String suffix)
지정된 문자열(suffix)로 끝나는지 검사
String file = "Hello.txt";
boolean b = file.endsWith("txt");
b = true;
boolean equalsIgnoreCase(String str)
문자열과 String인스턴스의 문자열을
대소문자 구분 없이 비교
   
int indexOf(int ch)
주어진 문자(ch)가 문자열에 존재하는지 확인 후 위치를 알려준다
못 찾으면 -1 반환
String s = "Hello";
int idx1 = s.indexOf('o');
int idx2 = s.indexOf('k');
idx1 = 4
idx2 = -1
int indexOf(int ch, int pos)
주어진 문자(ch)가 문자열에 존재하는지 지정된 위치(pos)부터 확인하여 위치를 알려준다
못 찾으면 -1 반환
String s = "Hello";
int idx1 = s.indexOf('e', 0);
int idx2 = s.indexOf('e', 2);
idx1 = 1;
idx2 = -1
int indexOf(String str)
주어진 문자열이 존재하는지
확인 후 위치를 알려준다
못 찾으면 -1 반환
String s = "Hello";
int idx = s.indexOf("CD");
idx = 2

*CharSequence는 문자열들을 묶은 인터페이스(문자열 클래스들은 공통조상이 없어서)

훨씬 많지만 일단 이정도만 정리

 

 

 


ch 9 - 12~14 String Joiner, 문자열과 기본형 변환

(3판 기준 471~476쪽)

https://www.youtube.com/watch?v=bX0ZAu4IUXo&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=108 


 

join()과 StringJoinder
join()은 여러 문자열 사이에 구분자를 넣어서 결합한다
String str = String.join("구분자", arr);
→ arr[0]구분자arr[1]구분자…


기본형 값을 String으로 변환
숫자를 문자열로 바꾸는 방법
int i = 100;
String str1 = i + ""; //간편
String str2 = String.valueOf(i); //빠름


String을 기본형 값으로 변환
문자열을 숫자로 바꾸는 방법
int i = Integer.parseInt("100");
int i2 = Integer.valueOf("100");
Integer i2 = Integer.valueOf("100"); //valueOf가 반환하는 건 참조형 Integer지만 기본형 int로 자동으로 바꿔주는 기능이 있어 괜찮다

 

출력할 때
System.out.println(String.join("",strVal,"+",strVal2,"=")+sum);
=
System.out.println(strVal+"+"+strVal2+"="+sum2);
→숫자+숫자=합계

 

 

 


ch 9 - 15~18 StringBuffer 클래스

(3판 기준 476~479쪽)

https://www.youtube.com/watch?v=FvaXjnBpGgc&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=109 


 

1.3 StringBuffer 클래스와 StringBuilder클래스

String처럼 문자형 배열(char[])을 내부적으로 가진다
그러나 String과 달리 내용을 변경할 수 있다(mutable)


StringBuffer의 생성자
-배열은 길이 변경 불가해서 공간이 부족하면 새로운 배열 만들어야 
①새로운 배열 생성 ②내용 복사 ③참조 변경

-StringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해야 한다


StringBuffer의 변경
-StringBuffer는 String과 달리 내용 변경 가능
StringBuffer sb = new StringBuffer("abc");
sb.append("123"); //sb의 내용 뒤에 "123"을 추가
-append()는 지정된 내용을 StringBuffer에 추가 후, StringBuffer의 참조를 반환
반환 타입이 StringBuffer라서 sb.append("123").append("zz") 같은 경우도 가능


StringBuffer의 비교
-StringBuffer는 equals()가 오버라이딩되어있지 않다 → 주소로 비교한다
-StringBuffer를 String으로 변환 후 equals()로 비교해야 한다

 

 

 


ch 9 - 19, 20 StringBuffer 클래스의 메서드

(3판 기준 480, 481쪽)

https://www.youtube.com/watch?v=MbxD2I2dyx0&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=110 


 

StringBuffer의 생성자와 메서드
이것 역시 양이 많다(교재 기준 2쪽)

우선 표로 정리는 안 했다

 

 

 


 

반응형
Comments