Решение с использованием оператора по модулю и одного цикла. Нет риска IndexOutOfBounds.
for (int i = 0; i < list.length; i++) {
if (i % 6 > 2) {
System.out.println(list[i]);
}
}
Вы можете переключить условие на i % 6 < 3
, если вместо этого хотите получить первые 3 из каждых 6 элементов в массиве.
РЕДАКТИРОВАТЬ: следующее берет ваш ввод и помещает его в List<String[]>
, где каждый элемент содержит 3 строки.
import java.nio.file.*;
import java.util.stream.Stream;
import java.util.*;
import java.nio.charset.Charset;
public class Partition2 {
public static void main(String[] args) {
String[] input = ...
try (Stream<String> stream = Arrays.stream(input)) {
// https://stackoverflow.com/a/34759493/3717691
String[] array = stream.map(line -> line.trim()).filter(line -> !line.isEmpty()).toArray(String[]::new);
List<String[]> results = new ArrayList<String[]>();
String[] tmp = new String[3];
for (int i = 0; i < array.length; i++) {
tmp[i % 3] = array[i];
if (i % 3 == 2) {
results.add(tmp);
tmp = new String[3];
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Использование:
#include <iostream>
...
std::cout << std::hex << a;
существуют много других опций управлять точным форматированием вывода номер , такой как начальные нули и верхний / нижний регистр.
Управлять потоком для печати в шестнадцатеричном использовании hex
манипулятор:
cout << hex << a;
По умолчанию шестнадцатеричные символы производятся в нижнем регистре. Для изменения это на верхний регистр использует uppercase
манипулятор:
cout << hex << uppercase << a;
Для позже возврата вывода к нижнему регистру используйте nouppercase
манипулятор:
cout << nouppercase << b;
Я понимаю, что это не то, что попросила OP, но я все еще думаю, что стоит, чтобы указать, как сделать это с printf. Я почти всегда предпочитаю использовать его по станд.:: суд (даже без предыдущего фона C).
printf("%.2X", a);
'2' определяет точность, 'X', или 'x' определяет случай.
std::hex
определяется в <ios>
, который включен <iostream>
. Но использовать вещи как std::setprecision/std::setw/std::setfill
/ и т.д. необходимо включать <iomanip>
.