我有這樣一個代碼:如何刷新字符串中的某些參數?
int q = 2;
int w = 3;
String str = "q = " + q + "\nw = " + w;
q++;
System.out.println(x+q);
是否有可能刷新str中Q,所以輸出是不當q = 2,而q = 3的?
我的實際字符串很大,並有更多的參數。 它看起來很糟糕,因爲我必須在5種不同的方法中使用這件作品。
我有這樣一個代碼:如何刷新字符串中的某些參數?
int q = 2;
int w = 3;
String str = "q = " + q + "\nw = " + w;
q++;
System.out.println(x+q);
是否有可能刷新str中Q,所以輸出是不當q = 2,而q = 3的?
我的實際字符串很大,並有更多的參數。 它看起來很糟糕,因爲我必須在5種不同的方法中使用這件作品。
創建一個包含所有參數和生成需求串類,像這樣:
class MyStringGenerator{
private int q;
private int w;
setQ(int q){
this.q = q;
}
setW(int w){
this.w = w;
}
public String getMyString(){
return String.format("q = %d \nw = %d", q, w);
}
}
和
MyStringGenerator msg = new MyStringGenerator();
int q = 2;
int w = 3;
msg.setQ(q);
msg.setW(w);
String str = msg.getMyString();
q++;
System.out.println(x+q);
msq.setQ(q); // set a new value of Q
String newString = msg.getMyString();
當你使用'String#format'的時候,同樣使用'%n'而不是'\ n'。 – Tom
@Tom,我不明白你的問題,請澄清 - 我使用%d作爲格式限定符,並且\ n作爲一個新行,它建立一個字符串'q = value(new-line)w = value',請參閱文檔:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#format(java.lang.String,%20java.lang.Object ...) – krokodilko
'\ n'創建一個新行,是的,但它不像'%n'那樣平臺獨立,因爲後者在Windows上創建'\ r \ n'。 – Tom
變量str是不可變的,你不能改變它,一旦它被創建
號使用類,改變字段,並創建一個方法(不是'的toString()')輸出成品字符串值 – Bohemian
「刷新字符串」你可以運行'海峽=「q = 「+ q +」\ nw =「+ w;'再次。 – immibis