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