我正在学习Java,但我遇到了问题。 我想说的是,每次运行我的代码时,都会在字符串中添加一个字符。
这就是我现在所拥有的:
StringBuilder amountReady = new StringBuilder();
amountReady.append("|");
但是当我第二次运行这个代码时,它会忘记所有关于第一个" |",然后重新启动一个" |"而不是两个。
提前致谢,
〜里克多维
答案 0 :(得分:4)
每次运行此代码时,您都会将amountReady
设置为new StringBuilder()
个对象。 new
StringBuilder默认为空。
相反,将行StringBuilder amountReady = new StringBuilder();
放在追加到它的方法之外......这样,amountReady
变量就已经存在了,你可以像你一样追加它。 / p>
答案 1 :(得分:0)
每当你使用保留字“new”时,你就会创建一个新对象。每次执行上面的代码时,都会创建一个新对象(因此可以存储在amountReady中的旧对象从内存中取消定位)并使其存储一个单个字符。
如果您的问题是关于每当您执行Java应用程序时,旧执行中的对象仍然在内存中,那么答案绝对不是。
答案 2 :(得分:0)
如果必须在程序的各个运行之间保持它,则需要将其写入文件或数据库并在每次读取它。
对于像这样的小练习来说,文件肯定会更容易。 Java对文件系统有很好的支持。谷歌为“java文件”,看看。它实现起来很简单,Stack Overflow上有很多例子。
答案 3 :(得分:0)
http://ideone.com/XjHKwb检查一下;你可能不需要一个方法作为appendString;您可以将整个代码添加到main方法中。我们可以删除静态等等,我只是提出一个有效的想法。
private static StringBuilder amountReady = new StringBuilder();
public static String appendString(String str)
{
amountReady.append(str);
return amountReady.toString();
}
public static void main (String[] args) throws java.lang.Exception
{
for(int i=0; i<10; i++)
System.out.println(appendString("|"));
}