일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dfs
- Parcelize
- 자바
- Kotlin
- 순수함수
- EditorInfo
- SWEA
- hilt
- java
- 2501
- 지능형 기차2
- BuildConfig
- val
- imeOptions
- 프로그래머스
- 최단경로
- 백준 14501
- Android
- 순열
- 백준 퇴사
- 백준
- 약수 구하기
- Parcelable
- 완전탐색
- 조합
- EditText
- 시뮬레이션
- 오르막수
- 스카이라인 쉬운거
- BFS
- Today
- Total
안드 공부를 해볼까?
[Java] subString 본문
1. 개요
지난 알고리즘 풀이 때 subString을 사용해서 문제를 풀고있는데 너무 오랜 시간이 걸렸다.
좀 더 확실하게 알고 까먹지 않기 위해 정리해본다.
2. subString(int beginIndex)
subString은 1가지 매개변수를 가진형태와 2가지 매개변수를 가진 형태, 2가지가 존재한다.
먼저 첫번째를 보자. 주석을 보면 문자열을 자르고 return을 한다, 그리고 매개변수는 String의 idx부터 시작한다.
String num = "012345678"이 있다고 하자. 그렇다면 매개변수에 2를 넣어주면 num의 3번째 부터 시작하는 것이다.
배열의 인덱스 처럼 0부터 시작한다고 생각하자. 그렇다면 이해하기 쉽다.
public class main {
public static void main(String[] args) {
String num = "012345678";
System.out.println("First subString");
System.out.println("===================================");
for(int i = 0; i<num.length(); i++){
System.out.println(num.substring(i));
}
}
}
다음과 같은 코드가 있다. i는 1씩 증가하고 그만큼 subString을 한다.
인덱스 처럼 생각하자고 했으니 한번 해보자. 0이면 0부터 시작, 1이면 1부터 시작... 해서 쭉해보면
다음과 같은 결과가 나온다. 정말 쉽지만 까먹기 쉽다. 이번 기회에 한번에 외워두자.
3. subString(int beginIndex, int endIndex)
이번에는 두번째 subString을 보자.
첫번째 subString과 비슷하지만 endIndex - 1, 즉 마지막은 하나를 빼고 자른다.
이번도 인덱스 처럼 관리하면 쉽다.
String num = "012345678"이 있다고 하자. 그럼 num.subString(3,7)은 무엇일까?
풀어쓰자면 num의 인덱스 3번부터 6번까지만 납두고 다 버린다. 라고 설명할 수 있다.
public class main {
public static void main(String[] args) {
String num = "012345678";
System.out.println("Second subString");
System.out.println("===================================");
for(int i = 0; i<num.length(); i++){
System.out.println(num.substring(0,i));
}
}
}
이번에도 코드를 실행시켜보자.
i값에 따라 자르는 문자열이 달라진다.
맨 처음은 왜 안나왔을까? num.subString(0,0)이면 0번째 인덱스부터 보여주고 -1인 인덱스까지 출력한다.
인덱스는 맨 처음이 0이기 때문에 값이 안보이는 것이다.
두번째는 num.subString(0,1) -> 0번째 인덱스부터 0번째 인덱스까지, 즉 0이 출력된다.
즉, subString은 인덱스로 보면 쉽게 이해할 수 있다.
4. 마무리
subString은 정말 많이 쓰인다. 하지만 결과를 정확하게 모른다면 계속 구글링을 해야한다.
코테를 볼때 구글링을 허용하는 곳도 있지만 대부분 허용하지 않는다.
정말 쉽고 사소하지만 정확하게 이해하고 넘어가는 것이 좋다.