Есть текстовый файл, в который записаны числа (каждое с новой строки) в таком формате:
1075
5018
6542
1456 и т.д
Хочу создать ArrayList массивов и каждый массив этого листа заполнить цифрами из строки. Т.е в первом массиве будут цифры {1,0,7,5}, во втором {5,0,1,8} и так далее. И не знаю, как это сделать наиболее кратко. Подкиньте вариантов, пожалуйста.
List<int[]> list = new ArrayList<>();
int[]square1=new int[4];
int[]square2=new int[4];
int[]square3=new int[4];
int[]square4=new int[4];
int[]square5=new int[4];
Scanner sc = new Scanner(new File("/Users/Anastasiya/Desktop/test.txt"));
String s = "";
while((s = sc.nextLine())!=null) {
if (!s.isEmpty()) {
for(int j = 0; sc.hasNextInt();j++){
square1[j]=sc.nextInt();
}
list.add(square1);
}
Но таким методом у меня, понятное дело, заполняется лишь первый массив. И вот как с помощью цикла заполнить все массивы?
List<int[]> list = new ArrayList<>();
Scanner sc = new Scanner(new File("/Users/Anastasiya/Desktop/test.txt"));
// цикл, пока есть числа
while (sc.hasNextInt()) {
// считали число
int num = sc.nextInt();
// создали новый массив
int[] cur = new int[4];
// добавили его в список
list.add(cur);
for (int i = 3; i >= 0; i--) {
// Нарезаем цифры
cur[i] = num % 10;
num /= 10;
}
}
Если по минимуму, то вы можете создать массив внутри цикла и каждый раз переменная будет создаваться заново. А вот добавленный внутрь списка массив сохранится т.к. ссылка на него не будет стерта.
List<int[]> list = new ArrayList<>();
Scanner sc = new Scanner(new File("/Users/Anastasiya/Desktop/test.txt"));
String s = "";
while((s = sc.nextLine())!=null) {
if (!s.isEmpty()) {
int[] square = new int[4]; //изменение, используется одна переменная
for(int j = 0; sc.hasNextInt();j++){
square[j]=sc.nextInt();
}
list.add(square);
}
}
Если вы используете java8, то с этим очень легко и красиво справятся Stream`ы и классы для работы с файлами из пакета nio
public static void main(String[] args) throws IOException {
List<int[]> list = new ArrayList<>();
List<String> strings = Files.readAllLines(Paths.get("/Users/Anastasiya/Desktop/test.txt"), StandardCharsets.UTF_8);
strings.forEach(s -> list.add(Arrays.stream(s.split("")).mapToInt(Integer::valueOf).toArray()));
list.forEach(arr -> {
for (int value : arr) {
System.out.print(value);
}
System.out.println();
});
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Всем привет! У меня есть два EnumВ одном написана стоимость, в другом предмет
Вопрос написал ниже в комментах кодаДа там два вопроса, но второй не отдельный вопрос, а лишь уточнение первого вопроса
Мы вроде бы избавляемся от jQuery и должны получить меньший размерjs файла, но в итоге он у меня получается ещё больше
У меня два вопроса: 1) Я передаю в функцию circle: number - начальная позиция круга, final - конец круга, selector - объект, c которым я буду работать, найденный...