Как вывести только 5 целых чисел в строку из массива - PullRequest
0 голосов
/ 23 октября 2019

Я написал программу, которая будет загружать массив из 50 случайных целых чисел в диапазоне от 0 до 128. Я пытаюсь напечатать массив, в каждой строке которого напечатано только 5 целых чисел. Но я не могу этого сделать.

public static void printList(int len, int[] list){
        for (int i = 0; i < len; i++) {
            System.out.println(list[i]);
        } // end for 
} // end printList

Я хочу, чтобы вывод был только 5 целых чисел в строке.

Ответы [ 5 ]

4 голосов
/ 23 октября 2019

Это может работать:

public static void printList(int len, int[] list){
        for (int i = 0; i < len; i++) {
            if (i % 5 ==0) {
                  System.out.println();
            }
            System.out.print(list[i] + "\t");
        } // end for 
} // end printList
2 голосов
/ 23 октября 2019

Переработка @ Код AmalK:

public static void printList(int len, int[] list) {
    for (int i = 0; i < len; i++) {
        String sep = "\t"; // usually have a tab after each integer
        if ((i+1) % 5 == 0 || i+1 == len)
            sep = "\n"; // but periodically use a newline instead     
        System.out.print(list[i] + sep);
    } 
}

Мои изменения: 5 цифр в строке;без начального перевода строки;перевод строки после последнего номера, даже если len не кратен 5;нет закрывающей вкладки в строке.

0 голосов
/ 23 октября 2019

Если вы знакомы с Guava, вы можете попробовать это демо. Guava используйте substring JDK для создания разделов, так что это не увеличит стоимость памяти.

import com.google.common.collect.Lists;

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class TestDemo {
    public static void main(String[] args) {
        List<Integer> list = IntStream.range(0, 10).boxed().collect(Collectors.toList());
        List<List<Integer>> partition = Lists.partition(list, 5);
        partition.forEach(x -> System.out.println(x.stream().map(y -> Integer.toString(y)).collect(Collectors.joining(","))));
    }

}
0 голосов
/ 23 октября 2019

, если вы уверены, что массив всегда будет иметь число элементов, кратное 5, то это можно использовать.

Это экономит вам многократную итерацию цикла.

public static void printList(int len, int[] list){
        for (int i = 0; i < len; i+=5) {

            System.out.println(list[i] + "\t"+ list[i+1] + "\t"+ list[i+1] +
 "\t"+ list[i+1] + "\t"+ list[i+1] + "\t");
        } // end for 
} // end printList
0 голосов
/ 23 октября 2019

Это должно работать нормально:

public static void printList(int len, int[] list) {
    for (int i = 0; i < list.length; i++) {
        System.out.print(list[i] + " , ");
        if (i % 5 == 0) {
            System.out.println();
        }
    }
}
...