web-dev-qa-db-ja.com

Java整数を含む文字列を出力する

次の疑問があります。

public static void main(String[] args) throws IOException{
  int number=1;
  System.out.println("M"+number+1);
}

出力:M11

しかし、私はそれをM11の代わりにM2で印刷してもらいたいのです。変数がforループに含まれているため、++を番号付けできませんでした。そうすると、出力形式が変わるため、別の印刷ステートメントを使用して印刷できなかった場合に異なる結果が得られます。

それを適切に印刷する方法を手伝ってくれるようにあなたに要求します。

11
Harish Raj

これを試して:

System.out.printf("M%d%n", number+1);

どこ %nは改行です

18
Óscar López

sumが最初に発生するようにするには、合計の前後に角かっこを追加します。これにより、優先順位が最も高いbracketが最初に評価され、次にconcatenationが実行されます。

System.out.println("M"+(number+1));
11
Rohit Jain

Javaが文字列を連結する優先順位と関係があります。

基本的にJavaは言っています

  • _"M"+number = "M1"_
  • _"M1"+1 = "M11"_

数学と同じように、優先順位をオーバーロードできます

_"M"+(number+1)
_

これは今読む

  • "M"+(number+1) = "M"+(1+1) = _"M"+2_ = _"M2"_
5
MadProgrammer

試す

System.out.println("M"+(number+1));
3
adarshr

これを試して:

System.out.println("M"+(number+1));
2
Zaheer Ahmed

データを不変条件からより明確に分離する方法:

int number=1;
System.out.printf("M%d%n",number+1);
2
Mik378
  System.out.println("M"+number+1);

Javaでの文字列連結はこのように機能します:

最初のオペランドのタイプがStringで、+演算子を使用すると、次のオペランドが連結され、結果はStringになります。

試す

 System.out.println("M"+(number+1));

この場合、()括弧が最も優先順位が高いため、括弧内のものが最初に評価されます。次に、結果のint値が文字列リテラルと連結され、文字列「M2」が生成されます。

2
PermGenError

System.out.println("M"+number+1);

ここでは、println()メソッドの__と同様に、_+_を連結演算子として使用しています。

合計を行うために_+_を使用するには、優先順位を高くする必要があります。これは、以下に示すように角かっこで覆うことで実行できます。

System.out.println("M"+(number+1));

2
Parth