JAVA自动更改两个变量之间的值

时间:2015-10-07 09:16:13

标签: java

我有两个变量,我不知道如何在每个变量更改值时自动更改值:

ph.ModelName + ','

查看评论专栏并帮助我解决方案

3 个答案:

答案 0 :(得分:1)

如果我理解你的问题,自动意味着在i的生成值上加​​1,在这种情况下你可以尝试写

    int i = Integer.parseInt(a.substring(3, 4));
    System.out.println(i);
    // first question  
    a = "ABC"+(i+1)+"DEF";        // change value to "2"
    System.out.println(i);   // want value of "i" is "2" automaticaly?

现在,如果你再做一次

 int i = Integer.parseInt(a.substring(3, 4));

您将i的值设为2.并且您可以使用相同的行"ABC"+(i+1)+"DEF";来获取值"ABC3DEF";

答案 1 :(得分:0)

似乎是一个定制数据和应用观察者模式(至少是那种)的好地方。

class MyString {
    String representation = "ABC%dDEF\n";
    int i =1;
    void updateMyString(int i) {
        this.i = i;
    }

    void print() {
        System.out.printf(representation, i);
    }
}

class MyNumber {
    int i = 1;
    MyString myString;
    void bondMyNumberWithMyString(MyString myString) {
        this.myString = myString;
    }

    void setNewValue(int i) {
        this.i = i;
        myString.updateMyString(i);
    }
}

这只是一个草案,但这就是我试图解决你的问题,也许会让你知道如何继续。

如何使用?

public static void main(String[] args) {
   MyString ms = new MyString();
   MyNumber mn = new MyNumber();

   mn.bondMyNumberWithMyString(ms);

  ms.print();

   mn.setNewValue(2);
   ms.print();

   mn.setNewValue(3);
   ms.print();
}

答案 2 :(得分:0)

您想使用课程

class Auto {
    int i;

    public void a(String a) {
        i = Integer.parseInt(a.substring(3, 4));
    }

    public void i(int i) {
        this.i = i;
    }

    public int i() {
        return i;
    }

    public String a() {
        return "ABC" + i + "DEF";
    }
}

Auto auto = new Auto();     
auto.a("ABC1DEF");    // first value is "1"
System.out.println(auto.i());

auto.a("ABC2DEF");
System.out.println(auto.i());   // want value of "i" is "2" automaticaly?
// second question
auto.i(3);
System.out.println(auto.a());   // want value of "a" is "ABC3DEF" automaticaly?