如何在Java中连接换行符?

时间:2019-03-17 15:03:23

标签: java string newline

我有一个很奇怪的问题。假设我正在实现一个对象,该对象具有一个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)方法,并吐出两个,三个,五个,十五个正方形侧。

3 个答案:

答案 0 :(得分:0)

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);
}

}

答案 1 :(得分:0)

public class multiDarr {

    public static void main(String[] args) {


        String str1 = "010203\n040506\n070809\n";
        String str2 = "010203\n040506\n070809\n";

        String ttl = "";



        for(int i = 0;i<str1.length();i= i+7){
            ttl = ttl + str1.substring(i,i+6);
            ttl = ttl +str2.substring(i,i+6);
            ttl = ttl+'\n';

        }
        System.out.println(ttl);
        //System.out.println(ttl);




    }


}

您必须根据需要调整i = i + n,因为您的原始字符串有6个字符,所以我输入了7,

结果-
010203010203
040506040506
070809070809

答案 2 :(得分:0)

我试图在纸上解决此问题,并得出了与@mayamar相似的解决方案:

 public String sqConcat(String string1, String string2)
 {
    String[] rows1 = string1.split("\n");
    String[] rows2 = string2.split("\n");

    return new String(rows1[0] + rows2[0] + "\n"
                    + rows1[1] + rows2[1] + "\n"
                    + rows1[2] + rows2[2] + "\n");
 }

谢谢大家的帮助。