我编写了以下程序来比较两个字符串,但我得到了ArrayIndexOutOfBoundException
。
我不明白为什么。请查看以下代码并帮助我。
提前致谢:
public class IPrepTest4 {
static String s1 = "Java";
static String s2 = "Jav";
static String s3 = "Java";
static boolean b = false;
static char[] arr1 = s1.toCharArray();
static char[] arr2 = s2.toCharArray();
static char[] arr3 = s3.toCharArray();
public static void main(String[] args)
{
//compareString(s1,s2);
compareString(s1,s3);
}
public static void compareString(String s1, String s2)
{
if (s1.length() == s2.length()) {
int i = 0;
int j = 0;
while (i<s1.length() && j<s2.length()) {
b = (arr1[i] == arr2[j]);
i++;j++;
}
if (b)
System.out.println("String s1: " + s1 + " and String s2: " + s2 + " are equal");
} else {
System.out.println("String s1: " + s1 + " and String s2: " + s2 + " are not equal");
}
}
}
答案 0 :(得分:1)
你的main()函数在s1和s3中传递,但是你的函数有一个对arr2的硬编码引用,它只有三个元素。像你这样的函数的任何实际实现都应该动态创建char数组,假设完全创建这些数组是必要的。