for(int i = 0; i < aLenght; i++) {
for(int j = 0; j < bLenght; j++) {
if(aChars[i] == bChars[j]) {
System.out.println(j +" == "+ i);
}
}
}
例如,上面的代码生成以下输出:
3 == 0
5 == 0
4 == 1
6 == 1
现在,我想检查双方是否存在连续的数字。例如,上面的示例将返回true,因为3 == 0
和4 == 1
是连续的。
答案 0 :(得分:2)
尝试
for(int i = 0; i < aLenght - 1; i++) {
for(int j = 0; j < bLenght - 1; j++) {
if(aChars[i] == bChars[j] && aChars[i + 1] == bChars[j + 1]) {
return true;
}
}
}
请注意,即使迭代到ALenght-1,它也会覆盖数组的长度。因为当到达aLenght-2时,它将与aLenght-1进行比较。
(aChars[i] == bChars[j] && aChars[i + 1] == bChars[j + 1])
。
您可以通过以下方式检查它:
@Test
public void successive() {
char[] a = new char[]{'a', 'b', 'x', 'z', 'y'};
char[] b = new char[]{'r', 's', 't', 'a', 'b'};
boolean isSuccessive = false;
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < b.length - 1; j++) {
if (a[i] == b[j] && a[i + 1] == b[j + 1]) {
isSuccessive = true;
}
}
}
assertTrue(isSuccessive);
}