원하는 문자열 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/181878
- 문제 풀이
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
public class Solution {
public int solution(String myString, String pat) {
myString = myString.toLowerCase(); // 대소문자 구분하지 않으므로 모두 소문자로 변환
pat = pat.toLowerCase();
int n = myString.length();
int m = pat.length();
// myString에서 pat의 길이만큼씩 잘라서 비교
for (int i = 0; i <= n - m; i++) {
String subString = myString.substring(i, i + m);
if (subString.equals(pat)) { // 부분 문자열이 pat과 일치하는지 확인
return 1; // 일치하면 1 반환
}
}
return 0; // 일치하는 부분 문자열을 찾지 못했을 때 0 반환
}
public static void main(String[] args) {
Solution sol = new Solution();
String myString1 = "AbCdEfG";
String pat1 = "aBc";
String myString2 = "aaAA";
String pat2 = "aaaaa";
System.out.println(sol.solution(myString1, pat1)); // 출력: 1
System.out.println(sol.solution(myString2, pat2)); // 출력: 0
}
}
1
2
3
4
5
6
7
8
class Solution {
public int solution(String myString, String pat) {
myString = myString.toLowerCase(); // 문자열을 소문자로 변환
pat = pat.toLowerCase(); // 패턴도 소문자로 변환
return myString.contains(pat) ? 1 : 0; // 소문자로 변환된 문자열에서 패턴이 존재하는지 확인하여 결과 반환
}
}
substring()
함수문자열에서 지정된 시작 위치부터 끝 위치까지의 문자열을 추출하는 데 사용된다.
1 2 3
String str = "Hello, world!"; String sub1 = str.substring(7); // "world!" String sub2 = str.substring(0, 5); // "Hello"
substring(7)
은 인덱스 7부터 문자열의 끝까지를 반환한다. 따라서 “world!”가 된다.substring(0, 5)
은 인덱스 0부터 4까지의 문자열을 반환한다. 인덱스 5는 포함되지 않으므로 “Hello”가 된다.- 즉,
substring()
메서드의 첫 번째 매개변수는 시작 인덱스를 나타내고, 두 번째 매개변수는 끝 인덱스(포함되지 않음)를 나타낸다. 두 번째 매개변수를 생략하면 시작 인덱스부터 문자열의 끝까지를 추출한다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.