2017-08-26 4 views
0

Je Figuring comment imprimer les résultats de 4 entiers sur des lignes séparées en tapant une seuleSystem.out.println (je suppose que taper moins est mieux pour les codeurs).Comment imprimer plusieurs entiers sur les nouvelles lignes en Java

Résultats escomptés:

43 
1 
19 
13 

Mon code:

class JavaApplication1 { 
    public static void main(String[] args) { 
     int a,b,c,d; 
     a = -5 + 8 * 6; 
     b = (55+9) % 9; 
     c = 20 + -3*5/8; 
     d = 5 + 15/3 * 2 - 8 % 3 ; 

     System.out.println(a); 
     System.out.println(b); 
     System.out.println(c); 
     System.out.println(d); 
    } 
} 
+0

Pour formater ici, il vous suffit d'utiliser "barre d'espace" sur votre clavier;) – azro

+1

essayez d'utiliser 'System.out.println (a +" \ n "+ b +" \ n "+ c +" \ n " + d); ' –

+1

C'est exactement ce que je cherchais YCF_L, comment puis-je voter pour vous lol? Et oui j'ai utilisé l'espace pour formater le code, mais j'ai besoin d'utiliser de l'espace à chaque fois sur chaque ligne? –

Répondre

1

Vous pouvez je faire avec plusieurs façons:

Cette imprimera la variable et entre chacun un new-line char:

System.out.println(a + "\n" + b + "\n" + c + "\n" + d); 

Vous pouvez également utiliser la méthamphétamine référence od et Arrays, cela va créer une liste dynamique du tableau composé de vos 4 variables et appliquer System.out::println à chacun:

Arrays.asList(a,b,c,d).forEach(System.out::println); 

ou

IntStream.of(a,b,c,d).forEach(System.out::println); 

Utilisez un for each loop de base peut également être un moyen:

for (int i : new int[]{a, b, c, d}) 
    System.out.println(i); 

Imprimer avec format aussi:

System.out.printf("%d%n%d%n%d%n%d%n",a,b,c,d) 
3

Vous pouvez utiliser '\ n' pour créer une nouvelle ligne en Java, donc votre code ressemblerait à ceci:

System.out.println(a + "\n" + b + "\n" + c + "\n" + d); 

Cela va les imprimer sur de nouvelles lignes.

2

imprimer les résultats des 4 entiers sur des lignes séparées en tapant une seule fois « System.out.println ».

Assez facile, vous devez ajouter un caractère de nouvelle ligne au texte que vous souhaitez imprimer. Sur la plupart des machines, ceci est représenté par le caractère spécial \n.

String output = a + "\n" 
    + b + "\n" 
    + c + "\n" 
    + d; 
System.out.println(output); 

Cependant il y a plate-forme indépendants moyens comme ce que la méthode System.lineSeparator() (documentation) retours. Comme:

String lineSeparator = System.lineSeparator(); 
String output = a + lineSeparator 
    + b + lineSeparator 
    + c + lineSeparator 
    + d; 
System.out.println(output); 

Sinon, vous pouvez utiliser la méthode System.out.printf (documentation), qui signifie "impression au format". Il a le paramètre %n qui crée une nouvelle ligne, en utilisant également System.lineSeparator() en interne.

System.out.printf("%d%n%d%n%d%n%d%n", a, b, c, d); 

Le %d est un espace réservé pour un certain nombre comme int. Il remplace tous les espaces réservés par les arguments listés par la suite.

Voici une liste complète de tous les paramètres de la méthode accepte: Formatter-Syntax


Si vous cherchez une solution Java 8 en utilisant Streams et lambdas, vous pouvez ensuite utiliser ce code (documentation):

IntStream.of(a, b, c, d).forEachOrdered(System.out::println); 

Il crée d'abord un flux (quelque chose comme un récipient dans ce cas) tenant vos variables et appelle ensuite la méthode d'impressionsur chaque de ses éléments.Notez que le code lui-même appelle la méthode d'impression maintenant 4 fois, pas seulementune fois. Mais il semble assez compact.

Vous pouvez voir "équivalent" au code suivant:

int[] values = new int[]{a, b, c, d}; 

for (int value : values) { 
    System.out.println(value); 
} 
1

Ne pas utiliser simplement "\n" qui est un caractère de saut de ligne. Cela dépend de la plate-forme et si vous regardez la sortie contenant des lignes séparées par "\n" sur le bloc-notes de Windows, vous ne verrez pas ce que vous attendez.

Utilisez ce lieu:

System.out.printf("%s%n%s%n%s%n%s%n", a, b, c, d); 

Autre possibilité:

IntStream.of(a, b, c, d).forEach(System.out::println); 
+0

Merci beaucoup, la première façon semble si intelligente sans utiliser le "\ n", mais je ne comprends pas vraiment pour l'instant, je vais lire plus à ce sujet, mais ressemble à ceci est le meilleur moyen! –

+1

@GeorgiMichev Jetez un oeil aux autres réponses, ils expliquent la méthode en détail. – Zabuza

+0

pourquoi pas forEachOrdered()? –

1

Vous voulez utiliser le caractère de nouvelle ligne. En Java, il est \n
les imprimer en utilisant ce que vous avez, ce serait:

System.out.println(a + "\n" + b + "\n" + c + "\n" + d); 
1

Avec System.out.format vous pouvez sortir le séparateur de ligne dépendant du système en utilisant le format %n; Vous pouvez également ajouter un formatage supplémentaire à la chaîne de format.

System.out.format("%d%n%d%n%d%n%d%n", a, b, c, d); 
0

Vous pouvez également opter pour l'utilisation System.out.printf("%d%n%d%n%d%n%d%n",a,b,c,d)

1

Cela satisfait votre exigence énoncée d'un seul appel à System.out.println, utilise une plate-forme ligne de séparation indépendante, et évite de taper répétitivement la même opération de concaténation:

System.out.println(IntStream.of(a,b,c,d).mapToObj(Integer::toString) 
      .collect(Collectors.joining(System.lineSeparator()))); 

Voici une version plus générique qui fonctionne pour tous les objets, et pas seulement:

System.out.println(Stream.of(a,b,c,d).map(Object::toString) 
      .collect(Collectors.joining(System.lineSeparator())));