这是我的jsp页面。在这里,我正在比较两个数组值并在两者匹配时打印它:
<body>
<%
String[] basic = {"IND"};
String[] result = {"USA", "UK", "IND", "PAK"};
for (int i = 0; i < result.length; i++) {
if (basic[i] == result[i]) {
out.println(basic[i]);
}
}
%>
</body>
我最终得到一个超出绑定异常的数组。在基本数组中IND
必须与结果数组中的每个字符串进行比较。如果匹配,则需要打印该值。我怎么能这样做?
答案 0 :(得分:3)
这是因为您的basic
变量只有一个超出界限的值,因为您根据i
递增result.length
。您可能需要使用2个循环,具体取决于您必须执行的操作。
String[] basic = {"IND"};
String[] result = {"USA", "UK", "IND", "PAK"};
for (int i = 0; i < basic.length; i++) {
for (int j = 0; j < result.length; j++) {
if (basic[i].equals(result[j])) {
out.println(basic[i]);
}
}
}
答案 1 :(得分:3)
<%
String[] basic = {"IND"};
String[] result = {"USA", "UK", "IND", "PAK"};
for (int j = 0; i < basic.length; i++) {
for (int i = 0; i < result.length; i++) {
if (basic[j].equalsIgnoreCase(result[i])) {
out.println(basic[j]);
}
}
%>
更好地使用equalsIgnoreCase而不是equals。
答案 2 :(得分:1)
试试这个
<body>
<%
String[] basic = {"IND"};
String[] result = {"USA", "UK", "IND", "PAK"};
for (int i = 0; i < result.length; i++) {
if (basic[0].equals(result[i])) {
out.println(basic[i]);
}
}
%>
</body>
基本数组中只有一个元素,因此请使用basic [0]。
此外,您需要使用.equals
代替==
或者使用2个循环
<%
String[] basic = {"IND"};
String[] result = {"USA", "UK", "IND", "PAK"};
for (int j = 0; i < basic.length; i++) {
for (int i = 0; i < result.length; i++) {
if (basic[j].equals(result[i])) {
out.println(basic[j]);
}
}
%>