好的,我对如何检查重复项有了一个概念,因为我正在做一个项目,其中包括不将多个值压入堆栈。到目前为止,我的代码是标准代码,将扫描程序保存为字符串,将字符串保存为数组,然后进行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循环(因为c
和counter
在每次迭代中都具有相同的值,假设初始化为0)inAr[c+1]
确实是inAr[inAr.length]
,总是超出范围。
FIX:将循环更改为while(counter < inAr.length - 1)
或将计数器初始化为1。
编辑:您也不应将字符串与==
或!=
进行比较。您的if陈述应为:
if(!w1.equals(w2))
但这与实际问题无关,只是以后可能会引起问题。