首页 > 解决方案 > 如何在 Java 中连接换行符?

问题描述

我有一个非常奇怪的问题。假设我正在实现一个对象,该对象具有一个toString()方法,该方法返回一个以正方形格式化的单个字符串,如下所示:

010203
040506
070809

现在,显然整个字符串,当按字符列出时(不包括终止\0),是这样的:

010203\n040506\n070809\n

我将如何连接像这样的整个方块?例如,如果我想拥有:

010203     101112    010203101112
040506  +  131415 =  040506131415
070809     161718    070809161718

我怎么能这样做?请注意,我不能导入Java.util任何其他类。

编辑:上面的例子只是一个例子;理想情况下,我希望解决方案可以扩展到任意数量的“正方形对象”,我可以调用一个假设的aSquareObject.squareConcat(otherSquareObject).squareConcat(anotherSquareObject).....squareConcat(finalSquareObject)方法,它会并排吐出两个、三个、五个、十五个正方形。

标签: javastringnewline

解决方案


public class T27Concat {

public static void main(String[] args) {
    String s1 = "010203\n040506\n070809";
    String s2 = "101112\n131415\n161718";

    String plus = "   \n + \n   ";
    String equals = "   \n = \n   ";

    System.out.println(concat(concat(concat(concat(s1, plus), s2), equals), concat(s1, s2)));
}

public static String concat(String s, String t) {
    String[] ss = s.split("\n");
    String[] tt = t.split("\n");
    String result = "";
    for (int i = 0; i < ss.length; i++) {
        result += ss[i] + tt[i] + "\n";
    }
    return result.substring(0, result.length() - 1);
}

}

推荐阅读