2017-06-02 88 views
1

我部分想要concatfor循环内的字符串(在while循环内)。但是,当它在for循环内连接时,它会覆盖过去的连接。
我很新的节目,所以我不明白为什么它是一个for循环外工作的罚款,并改写本身在它的内部。级联覆盖for循环

String uitslagtxt; 
uitslagtxt = "Datum" + "|" + "Teamnamen" + "|" + "Uitslag" + "|" + "(Ruststand)"+"\n"; 

for (int i=0; i<1; i++){ 
    uitslagtxt = uitslagtxt.concat(row[1]+"|" +row[2]+"|"+row[3]+"|"+row[4].replace("\"","")+"\n"); 
    out.println("uitslagtxt in for loop: " + uitslagtxt); 
} 

因此,与其让4号线为例(这是在out.println检查所有可见的,见下文),

Datum | Teamnamen | Uitslag | (Ruststand)  
1 jun. 2017  | Thuis - Uit  |  2 - 2  |  (2 - 0)  
uitslagtxt in for loop: Datum | Teamnamen | Uitslag | (Ruststand)  
1 jun. 2017  |  Thuis - Uit  |  1 - 1  |  (1 - 0)  
uitslagtxt in for loop: Datum | Teamnamen | Uitslag | (Ruststand) 
1 jun. 2017  |  Thuis - Uit  |  3 - 3  |  (3 - 0) 

它只是写2.如何来的?

Datum | Teamnamen | Uitslag | (Ruststand) 
1 jun. 2017  |  Thuis - Uit  |  3 - 3  |  (3 - 0) 
+0

你认为'for(int i = 0; i <1; i ++){'要做什么? – njzk2

+0

你可以添加控制台输出吗? –

+0

此刻并不多。这段代码都在while循环中,所以它会执行多次(我编辑了我的问题)。 – YankeeSierra

回答

0

它覆盖了字符串,因为它在while循环中。 您在块中声明了字符串,因此每次重复时都会声明该变量。

开始while循环之前,将字符串声明和初始化。

String uitslagtxt; 
uitslagtxt = "Datum" + "|" + "Teamnamen" + "|" + "Uitslag" + "|" + "(Ruststand)"+"\n"; 

while (condition) { 
    // your code 
} 
+0

感谢您的+ =建议。 for循环在while循环中,因此它将执行多次,并且它们在我做的out.println检查中可见。但以前的结果会覆盖每一项新的执行。 – YankeeSierra

+0

这是否解决了您的问题? –

+1

'concat'是'String'的一种方法,它的确如此,如果你阅读文档 – njzk2