有没有办法打印变量,改变相同的变量并在列表中打印它们?

时间:2014-11-05 22:16:11

标签: java loops variables user-input

首先我很抱歉,如果这是一个奇怪的,但我不知道我在编码方面要做什么。

为了澄清我想做什么,我想知道一种方法将receipt的值“保存”到列表/集合/数组中,然后通过确定{{1的值再次将其保存到列表中,当我打印列表时,在每个列表后打印两个不同的收据值。 让我们说第一次receipt的值确定它等于x,然后我将它保存到列表并且通过相同的值来确定进程receipt = y并且我将其添加到列表。它会打印:x然后是y。还是y和y?如果它打印两次receipt的新值,如何让它在彼此之后打印两个不同的值?

receipt

Edit1:为了清晰起见,包含完整代码。 编辑2:更好的澄清

4 个答案:

答案 0 :(得分:0)

您可以使用StringBuilder附加新字符串。或者,您可以简单地将两个字符串连接到+ - 运算符,但这在执行时间方面效率非常低。

答案 1 :(得分:0)

看起来你问了两个问题。一个问题涉及是否可以保存变量,另一个是关于如何将一堆事物聚合在一起。从您的代码中,您不清楚您的目标是什么。

在java中,您声明的内容,如

String receipt

是参考。这意味着他们会跟踪一段数据。但是,其他事情也可以跟踪同一条数据。所以:

String receipt1 = "100EUR";
String receipt2 = receipt1;

在上面的代码中,内存中只有一个东西含有" 100EUR"在其中,receipt1和receipt2都在查看它。如果有什么东西出现并修改了其中一个

receipt1 = "200EUR";

另一个不受影响。

System.out.println(receipt1);
System.out.println(receipt2);

// output would be 
        200EUR
        100EUR

在很多情况下,一旦通过=符号将某个内容分配给引用,您可以想象引用始终可以访问它,直到下次使用=符号分配引用时才会保持不变指向别的东西。但是,在Java对象中可以改变状态,所以如果你有

List<String> myList = new ArrayList<String>():

并且事情开始调用myList上的方法来修改其内容,然后myList引用会觉得它指的是变化的东西。引用本身并没有改变,只是指向它的对象。

我把这个主题带到了列表中,因为你可能在创建它们之后试图跟踪所有收据,并且列表中有一个add函数可以很好地为你做到这一点。

如果你想打印出列表的全部内容,那么你可以有一个循环:

for(String line:myList) {
    System.out.println(line);
}

答案 2 :(得分:0)

首先,您可以声明字符串的ArrayList:

ArrayList<String> receipts = new ArrayList<>();

然后添加收据变量的值:

receipts.add(receipt);

最后,您可以打印ArrayList的所有元素

for (String s : receipts)
     System.out.println(s);

答案 3 :(得分:0)

我会使用StringBuilder,并继续在循环中添加你想要的东西,在循环结束时为它添加一个换行符:

public static void main(String[] args)
{
    StringBuilder receipt;
    //Other variable initializations

此外,您的while循环可能会更改为for循环:

for (int i = 0; i < ticketTotal; i++)
{
    receipt.append(zoneAmount);
    receipt.append(" zone(s), ");
    receipt.append(fareType);
    receipt.append(", bought at: ");
    receipt.append(purchaseLoc);
    receipt.append(". Your price: ");
    receipt.append(price);
    receipt.append(" SEK.\n");
}

然后当你需要打印你的StringBuilder时:

System.out.println(receipt.toString());