【发布时间】:2014-11-10 14:08:50
【问题描述】:
我是 Java 新手。我编写了以下程序并得到了下面的输出。
输出:
1
一出=
x=0 1 次测试..
x=1 1 个问题..
如果字符串是不可变的,为什么我可以将“thisCycle”的值从“0”更改为“1”并打印出新的字符串值? 为什么我在“for”循环中得到 2 行输出? 为什么第一个字符串要附加两个句点?
谢谢
import java.util.ArrayList;
public class Main {
/**
* @param args
*/
private static final ArrayList<String> ListContents=new ArrayList<String>();
public static void main(String[] args) {
// TODO Auto-generated method stub
String thisCycle="Cycle";
thisCycle="0";
// advance to next cycle
if (thisCycle.equals("0")) thisCycle="1";
System.out.println(thisCycle);
//
String a1="test";
String a2="gotcha";
ListContents.add(a1);
ListContents.add(a2);
StringBuilder a_out=new StringBuilder("");
System.out.println("a out="+a_out);
for(int x=0;ListContents.size()>x;x++) {
a_out.delete(0, a_out.length()+1);
if (thisCycle.equals("0")) a_out.append(ListContents.get(x)).append(". ");
if (thisCycle.equals("1")) a_out.append(ListContents.get(x)).append(".. ");
System.out.println("x="+x+" "+thisCycle+" "+a_out);
}
}
}
【问题讨论】:
标签: java string append immutability stringbuilder