可以使用String来存储多于1个输入

时间:2018-06-11 10:00:15

标签: java string

为什么可以先使用String eingabe;来保存int m然后再保存为int n。我认为Strings,一旦声明只能用于保存另一种方法的信息。或者它是否存储“彼此相邻”之类的值,当被告知打印到控制台时它会取出所需的值?

代码:

public static void main(String[] args) {
    // TODO Auto-generated method stub

    int m, n, r;
    String eingabe;
    eingabe = JOptionPane.showInputDialog("Geben sie ganze Zahl fuer m ein: ");
    m = Integer.parseInt(eingabe);
    eingabe = JOptionPane.showInputDialog("Geben Sie eine ganze Zahl für n ein: ");
    n = Integer.parseInt(eingabe);
    r = m%n;

    while (r > 0) {
        m = n;
        n = r;
        r = m % n;
    }
    System.out.println("ggT = " + n);

    }


}

1 个答案:

答案 0 :(得分:3)

String变量eingabe未用于存储多个输入。在行之后

 eingabe = JOptionPane.showInputDialog("Geben sie ganze Zahl fuer m ein: ");

eingabe 是对您要解析为int m 的任何值的引用。接下来就行了

 eingabe = JOptionPane.showInputDialog("Geben Sie eine ganze Zahl für n ein: ");

将重新分配引用以指向您从 showInputDialog 获得的新String值。

这里没有什么奇怪的事。 eingabe 引用的值刚刚更改。你可能会对在Java中使用不可变的字符串感到困惑。这是一个不同的概念,因为它意味着永远不能更改String实例。但是,此处没有更改String实例,只是指向不同字符串的引用变量。

总而言之, eingabe 是一个引用,它在代码的不同点指向内存中的不同String。它永远不会持有对两个字符串的引用。