Java 将索引处的字符串数组与字符串进行比较

Java 将索引处的字符串数组与字符串进行比较,java,arrays,string,Java,Arrays,String,我有一些java代码,我定义了一个数组,然后用如下值填充它 String[] longestSequences = new String[40]; Arrays.fill(longestSequences,"moo"); 在代码的后面,在我用不同的非“moo”字符串填充数组中的前几个插槽之后,我进行了比较 while (!"moo".equals(longestSequences[counter])); …但每次“moo”.equals(longestSequences[counter])返

我有一些java代码,我定义了一个数组,然后用如下值填充它

String[] longestSequences = new String[40];
Arrays.fill(longestSequences,"moo");
在代码的后面,在我用不同的非“moo”字符串填充数组中的前几个插槽之后,我进行了比较

while (!"moo".equals(longestSequences[counter]));
…但每次
“moo”.equals(longestSequences[counter])
返回true时(计数器初始化为0,我使用print语句检查数组中是否确实有在while循环之前没有moo的字符串)

我尝试过使用
equals(longestSequences[counter],“moo”)
,但编译器抱怨我在字符串上使用了对象方法!特别是,它给了我这个错误

DNA.java:54: error: method equals in class Object cannot be applied to given types

最可能的原因是:
计数器的值在整个循环中是稳定的,因此您总是将“moo”与某个固定单元格的值进行比较。如果该单元格恰好包含“moo”,那么在每次迭代中您一定会得到
true

底线:确保循环中的
计数器
已更改

我更进一步地说,你真的不想与
longestsequences[counter]
进行比较,而是与
longestsequences[I]
进行比较,其中
I
应该在循环开始之前初始化为零,并且随着循环的每次迭代而增加


至于
等于(longestSequences[counter],“moo”)
-这不起作用。
equals
方法是一个采用单个参数的实例方法。它将参数与调用此方法的实例(即:与点
左侧的对象)进行比较。因此,如果要比较X和Y,应该编写
X.equals(Y)

您是否真的在某个点增加了
计数器
?例如,
while(!“moo.”等于(最长的序列[counter++])也就是
最后是故意的吗?我没有得到任何错误,也许我的编译器更好:PShow我们的代码增量
计数器
只要发布你的整个例程,如果它不超过一页。这听起来像是个小错误。但是,在执行此操作之前,如果您正在使用IDE,请清理项目并重新启动IDE。它可能只是在窃听。Eclipse和IDEA有时会对我这样做。如果您使用的是IDE,请设置一个断点并调试应用程序,然后逐行检查它,同时检查变量。您将看到比调试语句告诉您的多得多、速度更快的内容。调试语句在30年前是热门技术,但现在有了更好的工具;使用它们!