Java/실습

[Java] 부분 문자열 찾기

tmd1 2022. 7. 18. 16:08

문제:

주어진 입력 문자열에 대하여 목적 문자열이 부분 문자열로 존재하는 경우, 
부분 문자열의 시작 인덱스를 출력하는 코드를 작성해보세요. 
단, 함수를 이용하여 문제를 해결해주세요. 인덱스는 0부터 시작한다고 가정합니다.

첫 번째 줄에는 입력 문자열이 주어지고,

두 번째 줄에는 목적 문자열이 주어집니다.

1 ≤ 목적 문자열의 길이(M) ≤ 입력 문자열의 길이 (N) ≤ 1,000

주어진 입력 문자열에 대하여 목적 문자열이 부분 문자열로 존재하는 경우, 
부분 문자열의 시작 인덱스를 출력하고, 목적 문자열이 부분 문자열로 존재하지 않는 경우 -1을 출력합니다.
단 목적 문자열이 입력 문자열 내에 여러 번 나타나는 경우, 가장 앞선 인덱스를 출력해줍니다.

코드:

import java.util.*;

public class Main {
	public static String text, pattern;
	
	public static boolean isSubStr(int StartIdx) {
		int n = text.length();
		int m = pattern.length();
		
		if(StartIdx+m > n) {
			return false;
		}
		for(int j=0;j<m;j++) {
			if(text.charAt(StartIdx+j) != pattern.charAt(j)) {
				return false;
			}
		}
		return true;
	}
	
	public static int findIndex() {
		int n = text.length();
		for(int i=0;i<n;i++) {
			if(isSubStr(i)) {
				return i;
			}
		}
		return -1;
	}
    public static void main(String[] args) {
        
    	Scanner sc = new Scanner(System.in);
    	text = sc.next();
    	pattern = sc.next();
    	
    	System.out.println(findIndex());
    	
    }	
}

 

import java.util.*;

public class Main {
    public static void main(String[] args) {
        
    	Scanner sc = new Scanner(System.in);
    	String n = sc.next();
    	String find = sc.next();
    	
    	int k = n.indexOf(find);
    	System.out.println(k);
    }	
}