Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level13.lesson11.bonus01;
- /* Сортировка четных чисел из файла
- 1. Ввести имя файла с консоли.
- 2. Прочитать из него набор чисел.
- 3. Вывести на консоль только четные, отсортированные по возрастанию.
- Пример ввода:
- 5
- 8
- 11
- 3
- 2
- 10
- Пример вывода:
- 2
- 8
- 10
- */
- import java.io.*;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Solution
- {
- public static void main(String[] args) throws IOException
- {
- // напишите тут ваш код
- String fileName = Solution.getFileName();
- Integer[] allNumbers = Solution.getNumbers(fileName);
- Integer [] evenNumbers = Solution.getEvenNumbers(allNumbers);
- Solution.bubbleSorting(evenNumbers);
- Solution.printItOut(evenNumbers);
- }
- public static String getFileName() throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- String fileName = reader.readLine();
- return fileName;
- }
- //получить массив чисел из файла и записать их в массив
- public static Integer [] getNumbers (String fileName) throws IOException{
- Scanner dataFile = new Scanner(new File(fileName));
- ArrayList<Integer> intData = new ArrayList<Integer>();
- while (dataFile.hasNextLine()){
- String line = dataFile.nextLine();
- Scanner scanner = new Scanner(line);
- while(scanner.hasNextInt()){
- intData.add(scanner.nextInt());
- }
- scanner.close();
- }
- dataFile.close();
- return intData.toArray(new Integer[intData.size()]);
- }
- public static Integer [] getEvenNumbers(Integer[] allNumbers) {
- ArrayList<Integer> evenNumbers = new ArrayList<Integer>();
- for (Integer i : allNumbers) {
- if (i%2==0) {
- evenNumbers.add(i);
- }
- }
- return evenNumbers.toArray(new Integer[evenNumbers.size()]);
- }
- public static void bubbleSorting (Integer [] notSortedNumbers) {
- int j;
- boolean flag = true;
- int temp;
- while (flag) {
- flag = false;
- for (j = 0; j < notSortedNumbers.length - 1; j++) {
- if (notSortedNumbers[j] > notSortedNumbers[j+1]) {
- temp = notSortedNumbers[j];
- notSortedNumbers[j] = notSortedNumbers [j + 1];
- notSortedNumbers[j + 1] = temp;
- flag = true;
- }
- }
- }
- }
- public static void printItOut (Integer [] numbersToOutput) {
- for (int i = 0; i < numbersToOutput.length; i ++) {
- System.out.println(numbersToOutput[i]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement