我有两个变量,我不知道如何在每个变量更改值时自动更改值:
ph.ModelName + ','
查看评论专栏并帮助我解决方案
答案 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?