2016-12-07 28 views
0

我有TextArea1TextArea2从两个textArea中获取相同的行吗?

里面TextArea1我:

aaa 
bbb 
ccc 
ddd 

里面TextArea2我:

111 
222 
333 
444 

我想追加到TextArea3像这样

aaa111 
bbb222 
ccc333 
ddd444 

我试着下面的代码,但没有奏效

for(String line : textArea1.getText().split("\\n")); String line2 : textArea2.getText()).split("\\n")) { 
    textArea3.append("('" + line +"'," + line2);\n"); 
} 
+0

“不工作”。是一个veeery非特定性描述。它以什么方式不起作用?我想它不能编译,因为扩展的for循环不像你试图去做的那样工作。您是否尝试过使用索引的传统循环呢? – Thomas

+0

如果长度不一样会发生什么? –

回答

0

您需要使用空间" "作为分隔符,如下所示。

 String[] arr1 = "aaa bbb ccc ddd".split(" "); 
     String[] arr2 = "111 222 333 444".split(" "); 

     StringBuilder text3 = new StringBuilder(""); 

     for(int i=0;i<arr1.length; i++) { 
      text3.append(arr1[i]).append(arr2[i]).append("\n"); 
     } 


     TextArea textArea3 = new TextArea(); 
     textArea3.setText(text3.toString()); 
+0

这不是OP想要的,我明白你的答案是基于问题最初格式化的方式,但如果你试图编辑问题,那么你可以看到实际提问的内容。 – px06

+0

它是exacly我想要的:)谢谢m8 – user2835705

0

有很多方法可以做到这一点,(包括Java 8流等)

你可以更好的使用String#split(),然后附加所有使用StringBuilder对象

例如

那些
public static void main(String[] args) { 
    String a = "aaa bbb ccc ddd"; 
    String b = "111 222 333 444"; 

    String[] aArray = a.split("\n"); 
    String[] bArray = b.split("\n"); 

    StringBuilder sb = new StringBuilder(); 

    for (int i = 0; i < bArray.length; i++) { 
     sb.append(aArray[i]); 
     sb.append(bArray[i]); 
     sb.append("\n"); 
    } 

    System.out.println(sb.toString()); 
} 
+0

这是否考虑到OP要按行添加“textArea1”和“textArea2”?即追加分隔符'\ n'。 – px06

+0

嗨@ px06谢谢...现在我看到格式良好的问题更好;) –

+0

这只适用于分割字符串具有完全相同的长度。 –

相关问题