【问题标题】:to understand return correctly正确理解退货
【发布时间】:2018-05-02 23:54:54
【问题描述】:

我正在学习java并尝试编写以下方法。

比较两个char数组,如果数组b完全包含在数组a中。

这是我的代码。

public static boolean containsPattern(char[] chars ,char[] pattern) { 

    boolean tellMe= true;

    for(int i=0;i<chars.length;i++) {
        for(int j=0;j<pattern.length;j++) {

            if(chars[i]==pattern[j]) {
                for(int k=0;k<pattern.length;k++) {
                    if(chars[i]==pattern[k])
                         return tellMe;
                }
            } else 
                return tellMe = false;                      
        }       
    }
    return tellMe;
}

如果条件chars[i]==pattern[k] 对模式的所有元素都为真,我希望它返回真。但是返回值与第一个 true 不同。

我怎么写,如果所有chars[i]==pattern[k] 都为真,它就返回真?

最好的问候 蜕皮

【问题讨论】:

  • return tellMe=false 不会做你认为的那样。你的意思可能是==
  • 如果一个不匹配,你可以扭转问题,那么它显然是错误的
  • 这么明显的错误...谢谢大家

标签: java arrays methods return


【解决方案1】:

我相信这就是你想要做的。

public static boolean containsPattern(char[] chars, char[] pattern) {
    for(int i = 0; i < chars.length; i++) {
        System.out.println(chars[i] + " " + pattern[i]);
        if(chars[i] != pattern[i]) {
            return false;
        }
    }

    return true;
}

所以containsPattern(new char[]{'a', 'c'}, new char[]{'a', 'c'}); 是真的 但是containsPattern(new char[]{'a', 'c'}, new char[]{'a', 'b'}); 是假的

【讨论】:

    猜你喜欢
    • 2022-11-18
    • 2018-01-01
    • 2019-03-08
    • 2014-06-29
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    相关资源
    最近更新 更多