Java:Contains()方法

时间:2013-04-23 15:34:04

标签: java algorithm contains

尝试在不使用内置方法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声明?

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

好吧,如果这是我的第一件事我会检查我的char序列的长度是&lt; =到我的字符串的长度。

一旦你将逻辑路径切断了。 如果长度相等,你可以使用== 如果你砍掉了str就会发生这种情况 对于cs长度部分,你也可以在那里进行直接比较。

例如,TonyJ的str和搜索三个字符的序列将填补

吨 ONY NYJ

一个循环,一个if语句和一个更清晰的东西。

答案 2 :(得分:1)

我建议使用this并在其中使用contains方法。

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

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

答案 3 :(得分:0)

如果这是我的作业,我怀疑它是,那么我建议你看看API for the String类,看看有哪些其他方法可以帮助找到一个String在另一个中的位置。 / p>

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

答案 4 :(得分:0)

我相信你已经知道了,但事实上可以看到内置类和方法的实际源代码。所以我先来看看它的开始。 String类特别有趣,IMO。