每次运行代码时都会在字符串中添加一个字符

时间:2013-11-15 18:32:14

标签: java

我正在学习Java,但我遇到了问题。 我想说的是,每次运行我的代码时,都会在字符串中添加一个字符。

这就是我现在所拥有的:

StringBuilder amountReady = new StringBuilder();
amountReady.append("|");

但是当我第二次运行这个代码时,它会忘记所有关于第一个" |",然后重新启动一个" |"而不是两个。

提前致谢,

〜里克多维

4 个答案:

答案 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("|"));
}