字符串比较java程序出错

时间:2014-12-13 19:43:32

标签: string compare

我编写了以下程序来比较两个字符串,但我得到了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");
        }
    }
}

1 个答案:

答案 0 :(得分:1)

你的main()函数在s1和s3中传递,但是你的函数有一个对arr2的硬编码引用,它只有三个元素。像你这样的函数的任何实际实现都应该动态创建char数组,假设完全创建这些数组是必要的。