package chapter08;
public class _13_AlternativeIterations_P1 {
public static void main(String[] args) { String str = "aaabbaa"; // 1. finish method findNthOccurrence() // 2. use findNthOccurrence() to find // 1st~9th occurrences of "aa" in str. for( int i=1; i<=9; i++) { System.out.print(findNthOccurrence(str,"aa", i)+" "); } System.out.println(); }
public static int findNthOccurrence(String str, String target, int n) { int index = -1; while(n>0) { index = str.indexOf(target, index+1); if(index==-1) { break; } n--; } return index ;
-------------
위에서 for( int i=1; i<=9; i++)를 돌리고 있으면 public static int findNthOccurrence(String str, String target, int n)의 n에 1,2,3,4,5,6,7,8,9 가 들어가는 거가 맞나요?
====================>> 맞아요.
그리고 만약에 맞다면, 예를 들어 i가 9가 된다면 while loop에서 n이 0이하가 될 때까지 9번 돌아가야 하는건가요?
console에서 '0 1 5 -1 -1 -1 -1 -1 -1 ' 이렇게 나오던데 왜 n번 복사 안 되는지 모르겠어요.
==========================================================
n 에 1 이 들어가면 find 1st occurrence, 즉 "aaabbaa" (굵은부분) 이찾아져서 0
n 이 2 면 find 2nd occurrence "aaabbaa" 여긴 1
n 이 3 이면 find 3rd occurrence "aaabbaa" 여긴 5
그 이후엔 aa 가 없지요.
따라서 못찾았으므로 -1 만 나오는거에요.
|