繁体   English   中英

Java:Contains()方法

[英]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
}

好吧,如果这是我的第一件事,我要检查的是我的char序列的长度小于等于我的字符串的长度。

一旦砍掉该逻辑路径。 如果长度相等,则可以使用==,然后将str切成CS长度部分,那么也可以在那里进行直接比较。

例如TonyJ的str并搜索三个字符序列将贯穿

吨纽约

一个循环,一个if语句和更清晰的内容。

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

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

如果您不愿意实际查看链接,则会看到我引用的是Apache Commons-Lang API和StringUtils.contains(...)方法,它们很清楚地回答了这个问题。

如果这是为您的家庭作业准备的(我怀疑是这样),那么建议您看一下String类的API,以了解还有哪些其他方法可用来帮助找到一个String在另一个String中的位置。

还可以考虑查看String的源代码以了解其实现方式。

我确定您已经知道这一点,但是实际上可以看到内置类和方法的实际源代码。 因此,我将从那里开始。 IMO是String类,特别有趣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM