2014-10-20 63 views
1

我想檢查一個字符串是否包含子列表。例如,str1 = "qwertyuiop"str2 = "tyu"returns true
我寫了iterative方法。java迭代遞歸2嵌套for循環

public static boolean checkString(String str1, String str2) { 
    for (int i=0; i<str2.length(); i++) { 
     int j = 0; 
     for (; j<str1.length()&& str1.charAt(j)!=str2.charAt(i); j++) { 

     } 
     if (j== str1.length()) 
      return false; 
    } 
    return true;  
} 

我試圖將其更改爲recursive方法,但不知道如何,因爲有兩個嵌套的for循環。 預先感謝您。

+1

你爲什麼不使用str1.contains(STR2)的方法? – 2014-10-20 04:14:15

+1

爲什麼不使用String.contains(String seq)? – 2014-10-20 04:14:35

+0

@sam_eera @Tyler這只是一個使用嵌套for循環的例子,因爲我想知道'recursion'在多於一個循環時如何工作。 – user2875021 2014-10-20 04:20:22

回答

1
public class Test { 

    public static void main(String[] args) { 
     System.out.println(isSubstring("ankur", "ku")); 
    } 

    public static boolean isSubstring(String str1, String str2) { 
     if ((str1 == null) || (str2 == null) || str1.isEmpty()) { 
      return false; 
     } else if (str1.startsWith(str2)) { 
      return true; 
     } else { 
      return isSubstring(str1.substring(1), str2); 
     } 
    } 
} 
3

我建議你專注於其他活動。 Java的已經包括的功能做你要實現的,那就是像String.contains(CharSequence)

if (str1.contains(str2)) { // <-- wherever you would have called "checkString" 
    // ... 
}