Java: Contains() method



尝试实现contains()方法而不使用内置方法contains()

下面是我的代码:
public static boolean containsCS(String str, CharSequence cs) {
    //char[] chs = str.toCharArray();
    boolean result = false;
    int i=0;
    while(i<str.length()) {
        int j=0;
        while(j<cs.length()) {
            if(NEED TO CHECK IF THERE IS AN INDEX OUT OF BOUNDS EXCEPTION) {
                result = false;
                break;
            }
            if(str.charAt(i+j)==cs.charAt(j)) {
                result|=true; //result = false or true ->>>>> which is true.
                j++;
            } else {
                result = false;
                break;
            }
        }
        i++;
    }
    return false;
}

假设:

String   str = "llpll"
Charsequence cs = "llo"

我想确保此方法在上述Charsequence有一个或多个char要检查但String耗尽长度的情况下正常工作。我应该如何写第一个if语句?

if (i+cs.length() > str.length()){
   OUT OF BOUNDS
}

如果是我,我首先要检查的是我的字符序列的长度是<=我的字符串的长度。

只要你切断逻辑路径。如果长度相等,可以使用==如果你把str切碎对于cs长度部分,您也可以在那里进行直接比较。

e。gstr = TonyJ并搜索三个字符序列将通过

吨轻装前行nyJ

一个循环,一个if语句,更清晰了。

我建议使用此方法并使用其中的contains方法。

编辑-阅读障碍:链接的方法是而不是来自java.lang.String或java.lang.Object

如果你真的看了这些链接,你会发现我引用的是Apache Commons-Lang API和StringUtils.contains(…)方法,这非常清楚地回答了这个问题。

如果这是你的作业,我怀疑它是,那么我建议你看一下String类的API,看看还有什么其他方法可以帮助找到一个字符串在另一个字符串中的位置。

还可以考虑查看String的源代码,看看它是如何实现的。

我相信您已经知道了这一点,但是实际上可以看到内置类和方法的实际源代码。所以我想从这里开始。在我看来,String类特别有趣。

最新更新