Java 需要输出第一个数组中的某个地方是否包含第二个数组 公共布尔包含(int[]a,int[]b){ int w=0; 对于(inti=0;i

Java 需要输出第一个数组中的某个地方是否包含第二个数组 公共布尔包含(int[]a,int[]b){ int w=0; 对于(inti=0;i,java,if-statement,for-loop,Java,If Statement,For Loop,试试这个 public boolean contains(int[] a,int[] b) { int w=0; for(int i=0;i<a.length && w<b.length;i++) { if(a[i]==b[w]) w++; else w=0; } System.out.println(w); if(w==b.length) return true; else return false; 生活 代码中的问题 p

试试这个

public boolean contains(int[] a,int[] b) {
int w=0;
for(int i=0;i<a.length && w<b.length;i++) {
    if(a[i]==b[w])
    w++;
    else w=0;
}
System.out.println(w);
if(w==b.length) return true;
else return false;
生活

代码中的问题

        public static boolean contains(int[] a,int[] b) {
        String s1=  Arrays.toString(a).replaceAll("\\[|\\]","");
        String s2=  Arrays.toString(b).replaceAll("\\[|\\]","");

        if(s1.contains(s2)){
          return true;
        } else {
            return false;
        }
        }

用于(int i=0;iHint:您需要两个for循环。我有点不确定您正在尝试做什么;您是否正在尝试这样做,以便查看1个数组中的所有元素是否都存在于另一个数组中?您需要描述您正在尝试做什么,您尝试完成了什么,以及您研究和尝试的可能解决方案。这样做将有助于m让你的问题更具体,你就更有可能得到更好的帮助。你的任务是在字符串@JoshM中查找子字符串的经典算法是的,那就是:查看字符串b是否是字符串a的子字符串。为什么不执行
返回Arrays.asList(a).contains(Arrays.asList(b))
?@JoshM不适用于这里。@JoshM:我试过了,但由于匿名原因失败了。你能解释一下为什么失败吗?@Ruchira:为什么这个解决方案是失败的。你之前流露出信心,认为它不起作用。你能证实为什么吗?@BharathBallamudi现在检查我的答案。你可以看到为什么你的代码不起作用了工作
      for(int i=0;i<a.length && w<b.length;i++) {//a={1, 2, 1, 2, 3},b= {1, 2, 3}
        if(a[i]==b[w])// first two element are same in both arrays
            w++;// then w=2, but a[2] !=b[2]. 
        else w=0;// So w=0, but in next round it will check 
          //equality as a[3]==b[0] that's false.
       }