我似乎无法弄清楚为什么我会收到此错误。我已经尝试将所有内容放在括号中,这有点帮助了解决问题。如果我能得到一些帮助,那就太棒了。
错误:二元运算符'< ='
的错误操作数类型代码:
public void merge(String[] result, String[] nameA, String[] nameB)
{
int i1 = 0; // index into nameA array
int i2 = 0; // index into nameB array
for (int i = 0; i < result.length; i++)
{
if (i2 >= nameB.length || (i1 < nameA.length && nameA[i1] <= nameB[i2]))
{
result[i] = nameA[i1]; // take from nameA
i1++;
}
else
{
result[i] = nameB[i2]; // take from nameB
i2++;
}
}
}
答案 0 :(得分:5)
为了比较Java中的String
,您需要调用方法compareTo
。查看String
实现的Comparable接口。
答案 1 :(得分:4)
<=
和>=
运算符适用于int
或double
等数字基元类型。要比较String
,请使用compareTo
方法。
nameA[i1].compareTo(nameB[i2]) < 0
如果您想按长度比较String
,请在String#length
上使用<=
运算符代替:
nameA[i1].length() <= nameB[i2].length()
答案 2 :(得分:1)
除了Luiggi Mendoza和Ivaylo Strandjev的答案之外,我想指出如果你只想确保字符串不同,你可以使用这样的等于:
if (i2 >= nameB.length || (i1 < nameA.length && !nameA[i1].equals(nameB[i2])))