好的,我对如何检查重复项有了一个概念,因为我正在做一个项目,其中包括不将多个值压入堆栈。到目前为止,我的代码是标准代码,将扫描程序保存为字符串,将字符串保存为数组,然后进行while循环。

int c=0;
  while(counter < inAr.length)
  {
     String w1 = inAr[c];
     String w2 = inAr[c + 1];
     if(w1 != w2)
     {
        counter++;
        so.push(inAr[c]);
        c++;
        temp++;
     }
     else
     {
        counter++;
        c++;
     }
  }


好的,那么问题就解决了。我正在为inAr [c + 1]获取arrayindexoutofbounds,但是我没有得到的是inAr [1],inAr [2]等所有保持值。如果我用[1]之类的常量替换[c + 1],则该程序运行正常,并且可以正常工作。...我现在很迷茫,任何人都可以提供帮助吗

最佳答案

考虑c = inAr.length-1的情况。

在这一点上,我们将进入while循环(因为ccounter在每次迭代中都具有相同的值,假设初始化为0)

inAr[c+1]确实是inAr[inAr.length],总是超出范围。

FIX:将循环更改为while(counter < inAr.length - 1)或将计数器初始化为1。

编辑:您也不应将字符串与==!=进行比较。您的if陈述应为:

if(!w1.equals(w2))


但这与实际问题无关,只是以后可能会引起问题。

10-05 20:51