java迭代到递归2嵌套for循环

时间:2014-10-20 04:05:29

标签: java recursion

我想检查字符串是否包含子列表 例如,str1 = "qwertyuiop"str2 = "tyu" returns true 我写了一个iterative方法。

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循环。 先感谢您。

2 个答案:

答案 0 :(得分:3)

我建议你专注于其他活动。 Java已经包含了一个执行您正在实现的功能的函数,它就像String.contains(CharSequence)一样

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

答案 1 :(得分: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);
        }
    }
}