簡體   English   中英

Java打印包含整數的String

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM