2016-11-18 3 views
-2

안녕하세요, 두 문자열에 도달하고 (요청하는) String2가 String1인지 여부를 확인하는 메소드를 작성하고 싶습니다. s2가 s1에있는 경우는 의 인덱스를 반환하고 그렇지 않으면 -1을 반환합니다. lastIndexOf() 메서드를 사용하면 간단하지만 원하는 것은 아닙니다. 사실, 우리가 편리한 문자열 메소드 (charAt와 length 제외)를 사용하지 않는다면 훨씬 더 좋을 것입니다.lastIndexOf()를 사용하지 않고 마지막 색인 색인 인쇄

int contains() { 
    Scanner scan0 = new Scanner(System.in); 
     System.out.println("Enter firts string: "); 
    String s1 = scan0.nextLine(); 
     System.out.println("Enter second string: "); 
    String s2 = scan0.nextLine(); 

    for(int i = 0; i<s1.length(); i++) { 
     for(int t = 0; t<s2.length(); t++) { 
      char desiredChar = s2.charAt(t); 
      char letter = s1.charAt(i); 
      if(desiredChar == letter) 
       System.out.print(s2.charAt(i)); 
     } 

    } 
    return 0; 
} 

그것은 java.lang.StringIndexOutOfBoundsException 오류가 있습니다 :

그래서 여기 내 코드 지금까지 (그것은 정말 나쁜 코드입니다)입니다.

+0

왜 자바 내장 메소드를 사용하고 싶지 않은지, 아무도 연구를 할 시간이 없다는 것을 의미합니다. –

+0

코드를 업데이트했습니다. – f1r4tc

답변

1

s2의 문자가 s1에 있는지 확인하지 않습니다. s1char을 입력하고 char을 입력하고 char과 그 뒤에 오는 문자가 s2과 일치하는지 확인해야합니다. 예를 들어 s1을 통해 반복하고 주어진 숫자가 이고 다음 숫자가 2 일 경우 s2과 같이 3 개의 문자가있는 것으로 가정하면 strings을 의미합니다. 다음 문자가 일치하지 않으므로 Misthe이 있습니다. 일치하는 문자열이있을 때까지 iss 등으로 다음 문자로 이동해야합니다. 일단 문자열이 있으면 s1에있는 문자열의 첫 번째 문자 색인을 반환 할 수 있습니다.