如何使用递归检查字符串是否由模式组成?

问题描述

如何创建一个递归方法,它接受两个参数,一个字符串和一个模式的长度,并检查字符串是否由给定长度的重复出现组成?

这是我目前想到的,代码仍然不完整,但我不知道下一步该怎么做。

    public static boolean checkPattern(String str,int pattern) {
        if(str.length() % pattern != 0)
            return false;
        String sub = str.substring(0,pattern);
//        if(str.matches(sub)) {
//            return checkPattern(str,pattern); 
//        }
        return false;
    }

输出点应该是这样的:

Enter pattern: abcdabcd 4
abcdabcd is composed of a pattern of length 4.

Enter pattern: abcdabcd 3
abcdabcd is not composed of a pattern of length 3.

有人可以帮我解决这个问题吗?

解决方法

目前无法对此进行测试,但它应该在您尝试存档的大致范围内

public static boolean checkPattern(String str,int patternLength) {
    if(str.length() % patternLength != 0)
        return false;
    if (str.length() == patternLength) {
        return true;
    }
    String sub1 = str.substring(0,patternLength);
    String sub2 = str.substring(patternLength,patternLenght * 2);
    if(sub1.equals(sub2)) {
        return checkPattern(str.substring(patternLength),patternLength); 
    }
    return false;
}