问题是:检查数组arr2是否以相同的顺序包含在arr1中。 arr2可以包含在arr1中的任何位置。
public boolean contains(String[] arr1, String[] arr2)
{
int length = 0;
if(arr2.length > arr1.length)
return false;
for(int i = 0; i < arr2.length; i++)
{
if(arr2[i] == arr1[i])
length++;
}
if(length == arr2.length)
return true;
else
return false;
}
TESTER:包含({&#34; 1&#34;,&#34; 2&#34;,&#34; 3&#34;},{&#34; 1&#34;,&#34; 2&#34;})→true
RUN:TRUE
TESTER:包含({&#34; 1&#34;,&#34; 2&#34;,&#34; 3&#34;},{&#34; 2&#34;,&#34; 3&#34;})→true
RUN:FALSE
TESTER:包含({&#34; 1&#34;,&#34; 2&#34;,&#34; 3&#34;},{&#34; 2&#34;,&#34; 1&#34;})→false
RUN:TRUE
TESTER:包含({&#34; MARY&#34;,&#34; A&#34;,&#34; LITTLE&#34;,&#34; LAMB&#34;},{&#34; A&#34;,&#34; LITTLE&#34;,&#34; LAMB&#34;})→true
RUN:FALSE
TESTER:包含({&#34; MARY&#34;,&#34; A&#34;,&#34; LITTLE&#34;,&#34; LAMB&#34;},{&#34; MARY&#34;,&#34; A&#34;,&#34; LITTLE&#34;,&#34; LAMB&#34;})→true
RUN:TRUE
我不知道自己哪里出错了。谢谢你的帮助。
答案 0 :(得分:1)
arr[1].equals(arr[2])
代替arr[1] == arr[2]
我修改代码:
public static boolean contains(String[] arr1, String[] arr2) {
int length = 0;
for (int i = 0; i < arr1.length; i++) {
if (arr2[length].equals(arr1[i])) {
length++;
} else {
length = 0;
}
if (length == arr2.length)
return true;
}
return false;
}
答案 1 :(得分:0)
您只是从一开始就比较两个数组;当您开始在arr1
中的其他位置进行比较时,您还需要考虑这些情况。例如,如果您开始在arr1
的第二个元素进行比较(第四个示例相同),则在第二个示例中将获得TRUE。