Как мне объединить новые строки в Java? - PullRequest
0 голосов
/ 17 марта 2019

У меня очень странный вопрос. Скажем, я реализую объект, у которого есть метод 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 голосов
/ 17 марта 2019
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 для ваших нужд, я поставил 7, потому что ваша исходная строка имеет 6 символов,

результат -
010203010203
040506040506
070809070809

0 голосов
/ 17 марта 2019

Я попытался решить эту проблему на бумаге и нашел решение, похожее на @ mayamar's:

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

Спасибо всем за помощь.

0 голосов
/ 17 марта 2019
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);
}

}
...