public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String text = "abcdbc";
String findStr = "bc";
int count = 0;
int currentIndex = 0;
currentIndex = text.indexOf(findStr, currentIndex);
System.out.println(text.substring(currentIndex, currentIndex + findStr.length()));
// 찾은 값 반환
currentIndex = 0;
while (currentIndex != -1) {
currentIndex = text.indexOf(findStr, currentIndex);
if (currentIndex != -1) {
count++;
currentIndex += findStr.length();
}
}
System.out.println(count);
// 찾은 갯수 반환
}
자바에서 String을 가지고 특정 값이 어디에 있는지 인덱스를 구하려 하거나, 혹은 특정 값이 몇 개나 있는지 확인하려는 경우 String.indexOf(찾는_값, 인덱스 위치); 를 사용해줄 수 있는데
먼저 특정 값이 어디에 있는지 인덱스를 구하려면 String.indexOf(찾는_값)을 사용하면 어디에 있는지 시작 인덱스를 구할 수 있고, 해당 값을 빼내려면 위 코드를 참조해서 Substring으로 빼내줄 수 있다.
다음으로 갯수가 몇개인지 확인하려면 While을 통해 반복문을 돌리면서 indexOf를 사용하되 메소드 파라미터 부분에 현재 인덱스를 0으로 넣고, 이후 발견할 때마다 시작 인덱스에 더해주는 식으로 갯수를 찾아줄 수 있다.
Leave a Reply