java中字符串比较

两组字符串进行比较(包含换行符),找出里面不同的字符串和不同字符串的下标。
例如
1234
56

1234
3456
输出
1 0 34
1表示第2行 0表示下标为0 34表示找出来的不同字符
例如
13520
5678

12342
3456
输出
0 1 2342
1 0 3456

import java.util.Arrays;

public class StringCompare {
    public static void main(String[] args) {
        // 定义两组字符串
        String str1 = "1234\n56";
        String str2 = "1234\n3456";

        // 将字符串按行分割为字符串数组
        String[] lines1 = str1.split("\n");
        String[] lines2 = str2.split("\n");

        // 如果字符串数组的长度不同,则输出错误信息
        if (lines1.length != lines2.length) {
            System.out.println("Error: the two strings have different number of lines.");
            return;
        }

        // 遍历每一行,比较两组字符串
        for (int i = 0; i < lines1.length; i++) {
            String line1 = lines1[i];
            String line2 = lines2[i];

            // 如果两行字符串完全相同,则跳过本次循环
            if (line1.equals(line2)) {
                continue;
            }

            // 定义两个字符数组,分别存储两行字符串的每个字符
            char[] chars1 = line1.toCharArray();
            char[] chars2 = line2.toCharArray();

            // 如果两行字符串的长度不同,则输出错误信息
            if (chars1.length != chars2.length) {
                System.out.println("Error: the two lines have different number of characters.");
                return;
            }

            // 遍历每一个字符,比较两组字符串
            for (int j = 0; j < chars1.length; j++) {
                char c1 = chars1[j];
                char c2 = chars2[j];

                // 如果两个字符不同,则输出结果
                if (c1 != c2) {
                    System.out.println(i + " " + j + " " + c1 + c2);
                }
            }
        }
    }

望采纳。