[英]Java printing a String containing an integer
我有一個疑問如下。
public static void main(String[] args) throws IOException{
int number=1;
System.out.println("M"+number+1);
}
輸出: M11
但我想把它打印成M2而不是M11。 我無法對++進行編號,因為變量與for循環有關,如果我這樣做會給我不同的結果,並且無法使用另一個print語句打印它,因為輸出格式會發生變化。
請求您幫我正確打印。
嘗試這個:
System.out.printf("M%d%n", number+1);
%n
是換行符
在您的總和周圍添加一個括號,以強制首先發生的sum
。 這樣,將首先評估具有最高優先級的bracket
,然后進行concatenation
。
System.out.println("M"+(number+1));
它與java連接String的優先順序有關,
基本上Java就是這樣說的
"M"+number = "M1"
"M1"+1 = "M11"
您可以像對數學一樣重載優先級
"M"+(number+1)
這現在讀了
"M"+(number+1)
= "M"+(1+1)
= "M"+2
= "M2"
嘗試
System.out.println("M"+(number+1));
嘗試這個:
System.out.println("M"+(number+1));
從不變量中分離數據的更簡潔方法:
int number=1;
System.out.printf("M%d%n",number+1);
System.out.println("M"+number+1);
java中的字符串連接以這種方式工作:
如果第一個操作數是String類型並且你使用+
運算符,它會合並下一個操作數,結果將是一個String。
嘗試
System.out.println("M"+(number+1));
在這種情況下,因為()
paranthesis具有最高優先級,所以括號內的事物將首先被評估。 然后生成的int值將與String文字連接,結果為字符串“M2”
System.out.println("M"+number+1);
這里你在println()
方法中使用+
作為它的連接運算符。
要使用+
進行求和,您需要賦予它高優先級,您可以使用括號覆蓋它,如下所示:
System.out.println("M"+(number+1));
如果在字符串后執行+
操作,則將其作為串聯:
"d" + 1 + 1 // = d11
然而,如果你做反之亦然+
被視為補充:
1 + 1 + "d" // = 2d
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.