어떤 문제를 해결하기위한 절차이며 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합
자료를 효율적으로 사용할 수 있도록 컴퓨터에 저장하는 방법.
알고리즘의 성능을 평가하는 기준 중 하나로 실행 시간이 얼만큼 걸리는지 평가한 것
알고리즘의 성능을 평가하는 기준 중 하나로 저장 공간이 얼만큼 필요한 지 평가한 것.
알고리즘 실행 시간을 표기하는 표기법 중 하나로 최악의 케이스를 실행 하는 시간이다. 가장 오래걸리는 시간을 표기한것이기 때문에 최소한 보장 되는 성능을 의미하며 그렇기 때문에 가장 일반적으로 사용한다.
*빅 오메가 표기법, 세타 표기법
Big-Ω 빅 오메가 표기법 : 알고리즘 최상의 실행 시간을 표기
Big-θ 빅 세타 표기법 : 알고리즘 평균 실행시간을 표기
String str = "hi kim";
// 문자열 인덱싱 1 : 문자열을 배열 처럼 관리할 수 있다
char[] arr = str.toCharArray(); // ['h', 'i',' ', 'k', 'i', 'm']
// 문자열 슬라이싱 : 문자열에서 내가 원하는 부분만큼 잘라낼 수 있다
substring(int begin, int end); // 기본 형태
String result1 = substring(1, 4); // "i k"
String result2 = substring(4); // "im"
// -> end가 생략된 꼴, begin 부터 문자열 끝까지 잘라서 반환
String str = "hi, kim hi";
contains("찾을문자열");
boolean result1 = str.contains("kim"); // true
boolean result2 = str.contains("xxxx"); // false
String str1 = "kim";
String str2 = "kim";
String str3 = "lee";
boolean result1 = str1.equals(str2); // true
boolean result2 = str3.equals(str2); // false
boolean result3 = null.equals(str2); // NPE 발생
boolean result4 = str2.equals(null); // false
String str = "12345";
int result = str.length(); // 5
String str = "hi, kim hi";
// indexOf(찾을문자열, 탐색시작인덱스); -> 맨 처음 부터 탐색
int result2 = str.indexOf("hi",0); // 0
int result3 = str.indexOf("hi",2); // 8
// lastIndexOf(찾을문자열, 탐색시작인덱스); -> 맨 끝에서 부터 탐색
int result4 = str.lastIndexOf("hi"); // 8
int result5 = str.lastIndexOf("hi", 5); // 0
// 없을 경우
int result6 = str.indexOf("xxx"); // -1
String str = "hi, kim hi";
split("정규표현식");
// 문자열을 모든 문자 하나하나로 나누기
String[] arr = str.split(""); // ["h", "i", ",", " ", "k", "i", "m", " ", "h", "i"]
// 공백으로 나누기
String[] arr = str.split(" "); // ["hi,", "kim", "hi"]
// 문자열 합치기
String result = str.concat(",lee"); // "hi, kim hi,lee"
String str = "kim";
String result = str.toUpperCase(); // "KIM"
String str = "KIM";
String result = str.toLowerCase(); // "kim"
String str = "kim jung kim";
String result = str.replace("kim", "lee"); // "lee jung lee"
// 정규 표현식 사용 가능
String result = str.replaceAll("kim", "lee"); // "lee jung lee"
String result = str.replaceFirst("kim", "lee"); // "lee jung kim"
String str = " kim ";
String result1 = str.trim(); // "kim" 양쪽 공백 다 삭제
String result2 = str.strip(); // "kim" 양쪽 공백 다 삭제
String result3 = str.stripLeading(); // "kim " 왼쪽 공백 삭제
String result4 = str.striptrailing(); // "kim " 오른쪽 공백 삭제
// trim vs strip
trim : 아스키코드 공백 만 삭제가능
strip : 아스키코드 + 유니코드 공백 삭제 가능 (Java 11)
char c = 'a';
int num = 97;
boolean result1 = c==num; // true
char result2 = (char)num; // 'a'
int result3 = (int)c; // 97
//사실 int와 char는 굳이 형변환 하지 않아도
//int 에 char데이터를 혹은 char에 int 데이터를 담으면 알아서 자동 형 변환이 됨