web-dev-qa-db-fra.com

Java impression d'une chaîne contenant un entier

J'ai un doute qui suit.

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

Sortie:M11

Mais je veux le faire imprimer M2 au lieu de M11. Je ne pouvais pas numéroter ++ car la variable est impliquée dans une boucle for, ce qui me donne un résultat différent si je le fais et ne pouvais pas l'imprimer en utilisant une autre instruction d'impression, car le format de sortie change.

Je vous demande de m'aider à l'imprimer correctement.

11
Harish Raj

Essaye ça:

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

%n est une nouvelle ligne

18
Óscar López

Ajoutez un crochet autour de votre somme, pour que le sum se produise en premier. De cette façon, votre bracket ayant la priorité la plus élevée sera évalué en premier, puis le concatenation aura lieu.

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

Cela a à voir avec l'ordre de priorité dans lequel Java concatène la chaîne,

Fondamentalement Java dit

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

Vous pouvez surcharger la priorité comme vous le faites avec les mathématiques

"M"+(number+1)

Cela se lit maintenant

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

Essayer

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

Essaye ça:

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

Une façon plus propre de séparer les données des invariants:

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

Concatination de chaînes en Java fonctionne de cette façon:

si le premier opérande est de type String et que vous utilisez +, il concatène l'opérande suivant et le résultat serait une chaîne.

essayer

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

Dans ce cas, comme () les parenthèses ont la priorité la plus élevée, les éléments entre parenthèses seraient évalués en premier. alors la valeur int résultante serait concaténée avec le littéral String résultant dans une chaîne "M2"

2
PermGenError

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

Ici, vous utilisez + Comme opérateur de concaténation comme Its dans la méthode println().

Pour utiliser + Pour faire la somme, vous devez lui donner une haute priorité que vous pouvez faire en le couvrant avec des crochets comme indiqué ci-dessous:

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

2
Parth