Split 메서드
- 구분자를 기준으로 문자열을 잘라 배열로 입력할 때 사용하는 메서드
사용방법
- split (String regex); : 구분자를 바탕으로 배열 형식으로 문자열을 잘라준다.
- split (String regex, int limit); : 위의 방식과 동일하게 배열 형식으로 문자열을 잘라주지만, limit 수만큼 잘라준다.
split (String Rex); - [ " " ] 공백 " " 으로 분리
public static void main(String[] args) {
String str = "Hello World";
String[] ArrayStr = str.split(" ");
for (String s : ArraysStr)
System.out.println(s);
}
출력 값 |
Hello World |
split (String Rex); - [ "," ] : " , " 으로 분리
public static void main(String[] args) {
String str = "ABCDEFG,HIJKLMN,OPQUSTU,VWXYZ";
String[] ArrayStr = str.split(",");
for (String s : ArraysStr)
System.out.println(s);
}
출력값 |
ABCDEFG HIJKLMN OPQUSTU VWXYZ |
여러 개의 구분자로 분리 - , @ - 공백을 구분자로 분리
public static void main(String[] args) {
String str = "안녕하세요, 이메일주소는 sungjae@naver.com";
String[] ArrayStr = str.split(",|@|-| ");
for (String s : ArraysStr)
System.out.println(s);
}
출력 값 |
안녕하세요 이메일주소는 sungjae naver.com |
하나의 값만 가져오기
public static void main(String[] args) {
String str = "111-2222-3333";
String[] ArrayStr = str.split("-")[1];
for (String s : ArraysStr)
System.out.println(s);
}
출력 값 ( [1] - 배열의 1번째 위치의 값) |
2222 |
split (String regex, int limit); - limit만큼만 문자열을 나누어 준다
public static void main(String[] args) {
String str = "123 4 5 67 890";
String[] LimitThree = str.split(" ", 3);
String[] LimitTExceed = str.split(" ", 10);
String[] LimitZero = str.split(" ", 0);
String[] LimitMinus = str.split(" ", -1);
for (int i = 0; i < LimitThree.length; i++)
System.out.println(i + "배열 : " + LimitThree[i]);
for (int i = 0; i < LimitExceed.length; i++)
System.out.println(i + "배열 : " + LimitExceed[i]);
for (int i = 0; i < LimitZero.length; i++)
System.out.println(i + "배열 : " + LimitZero[i]);
for (int i = 0; i < LimitMinus.length; i++)
System.out.println(i + "배열 : " + LimitMinus[i]);
}
LimitThree | LimitExceed | LimitZero | LimitMinus |
0배열 : 123 1배열 : 4 2배열 : 5 67 890 |
0배열 : 123 1배열 : 4 2배열 : 5 3배열 : 67 4배열 : 890 5배열 : 6배열 : |
0배열 : 123 1배열 : 4 2배열 : 5 3배열 : 67 4배열 : 890 |
0배열 : 123 1배열 : 4 2배열 : 5 3배열 : 67 4배열 : 890 5배열 : 6배열 : |
3개의 배열로 나눔 | 범위 초과시 일반 표기 | 배열이 ""으로 나올시 배열에서 제외 | 일반 split() 과 동일 출력 |
복잡도
- 복잡도(Complexity)는 알고리즘의 성능을 나타내는 척도, 시간과 공간으로 나눌 수 있다.
- 시간복잡도 : 알고리즘을 위해 필요한 연산 횟수. 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지 의미
- 공간복잡도 : 알고리즘을 위해 필요한 메모리의 양. 특정한 크기의 입력에 대하여 알고리즘이 얼마나 많은 메모리를 차지하는지를 의미
시간 복잡도
- 시간복잡도를 표현할 때는 빅오(Big-O) 표기법을 사용한다. 빅오 표기법은 가장 빠르게 증가하는 항만을 고여하는 표기법이다. 즉, 함수의 상한만 나타낸다.
공간 복잡도
- 공간복잡도를 표기할 때도 빅오 표기법을 이요한다. 일반적으로 메모리 사용량 기준은 MB 단위로 제시된다.
(코딩 테스트에서는 보통 메모리 사용량을 128 ~ 512MB정도로 제한, 즉 데이터 개수가 1000만 단위가 넘지 않게 설계)
'ssung_항해일지 > 항해99_프로그래밍 기초(알고리즘)' 카테고리의 다른 글
알고리즘 - 5일차 (1) | 2023.02.02 |
---|---|
알고리즘 - 4일차 (모의고사 Review) (1) | 2023.02.01 |
알고리즘 : 개인보충학습 (0) | 2023.01.30 |
알고리즘 - 2일차 (23.01.28) (0) | 2023.01.30 |
알고리즘 - 1일차 (0) | 2023.01.28 |