JAVA比较两个字符串是否相等上的一些问题

File file = new File(path);
try {
InputStreamReader read = new InputStreamReader(new FileInputStream(file));
BufferedReader bufferedReader = new BufferedReader(read);
String lineTXT = null;
String[] s3 = null;
while ((lineTXT = bufferedReader.readLine()) != null) {
System.out.println(lineTXT);
s3 = lineTXT.split(",");
}
for (int i = 0; i < s3.length; i++) {
int count = i + 1;
if (s3[i] != s2[i]) {
{
System.out.println("第" + count + "个位置的值不同,值为" + s3[i]);
}
}
}
read.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

读取了文件的内容放在s3数组里里面然我我定义了一个 String[] s2 = {"124453", "258", "98", "123"};放我比较的时候如果条件写成i < s2.length 就可以正常运行但只能比较出前四项,引文两个数组长度不一样s3数组里面的内容比s数组里面的内容要多,把条件改成i < s2.length,结果比较出前四项之后报错ArrayIndexOutOfBoundsException: length=4; index=4,请问在我代码的基础上要怎么修改才能解决这个问题呢?

简单一句话来说就是两个长度不等的字符串数组找出他们不同的地方 打印出来~要怎么做?怎么修改?

你下标越界了。这个可以用dp解决

String[] s2 = new String[] { "124453", "258", "98", "123" };
String[] s3 = new String[] { "124453", "2", "3" };
int index = 0;
for (String item2 : s2) {
for (String item3 : s3) {
index++;
if (item2.length() != item3.length()) {
System.out.println("两个数组存在差异:s2值为" + item2 + "\t s3值为" + item3);
}
}
}

你这里的主要问题是两个数组的长度不同,当s2比s3长的时候,s3会出现下标越界的问题

int count = 0;
        for (String i : s3) {
            for (String j :s2) {
                count++;
                if (i.length() != j.length()) {
                    System.out.println("第" + count + "个位置的值不同,值为" + i);
                }
            }
        }