将索引处的String Array与String进行比较

时间:2013-07-25 23:16:20

标签: java arrays string

我有一些java代码,我在其中定义一个数组,然后用这样的值填充它

String[] longestSequences = new String[40];
Arrays.fill(longestSequences,"moo");

稍后在代码中,在我使用不同的非“moo”字符串填充数组中的前几个插槽后,我进行了比较

while (!"moo".equals(longestSequences[counter]));

...但每次"moo".equals(longestSequences[counter])都返回true(计数器初始化为0,并且我使用了print语句来检查数组确实在此之前确实包含了不是moo的字符串循环)...

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

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

1 个答案:

答案 0 :(得分:1)

最有可能的原因:counter的值在整个循环中保持稳定,因此您总是将“moo”与某些固定单元格的值进行比较。如果那个单元格碰巧持有“moo”,那么你每次迭代都必须获得true

底线:确保循环中更改counter

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

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