From 62a8ccdd318f86a7b4abfff9e5fb2fb769fa8e49 Mon Sep 17 00:00:00 2001 From: Razansalam Date: Thu, 9 Apr 2026 08:42:27 +0400 Subject: [PATCH 1/3] Java Console Tool --- .../example/fromrazan/sprint5/JavaConsol.java | 174 ++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 src/main/java/org/example/fromrazan/sprint5/JavaConsol.java diff --git a/src/main/java/org/example/fromrazan/sprint5/JavaConsol.java b/src/main/java/org/example/fromrazan/sprint5/JavaConsol.java new file mode 100644 index 00000000..cdd46528 --- /dev/null +++ b/src/main/java/org/example/fromrazan/sprint5/JavaConsol.java @@ -0,0 +1,174 @@ +package org.example.fromrazan.sprint5; +import java.util.Scanner; + + +//strategy interface +interface SortSrategy{ + void sort(int[] arr); + +} + + + + +//selecion sort + +class SelecionSort implements SortSrategy{ + public void sort(int[] arr){ + for (int i = 0; i < arr.length - 1; i++){ + int minIndex = i; + + for (int j= i + 1; j < arr.length; j++) { + if (arr[j] < arr[minIndex]){ + minIndex = j; + } + } + + + int temp = arr[minIndex]; + arr[minIndex] = arr[i]; + arr[i] = temp; + } + } +} + + +// bubble sort + +class BubbleSort implements SortSrategy { + public void sort(int [] arr) { + boolean swapped; + + for (int i = 0; i < arr.length -1; i++){ + swapped = false; + + for (int j = 0; j < arr.length - i - 1; j++){ + if (arr[j] > arr[j +1]){ + + + int temp = arr[j]; + arr[j] = arr[j + 1]; + arr[j + 1] = temp; + + swapped = true; + + } + } + + if (! swapped)break; + } + } +} + + +//input parser +class InputParser { + public static int[] parseInput(String input) { + if (input == null || input.trim().isEmpty()) { + throw new IllegalArgumentException("THE INPUT IS EMPTY : "); + } + + String [] parts = input.split(","); + int [] numbers = new int[parts.length]; + + for (int i = 0; i < parts.length; i++){ + + try { + numbers[i] = Integer.parseInt(parts[i].trim()); + } catch (NumberFormatException e){ + throw new IllegalArgumentException(" THE VALUE IS INCORRECT" + parts[i]); + } + } + + return numbers; + + } + +} +//service layer + +class ComplaintService { + + private SortSrategy srategy; + + public ComplaintService(SortSrategy srategy){ + this.srategy = srategy; + } + + public int [] getLowestThree(int[] data){ + + if (data.length > 3){ + throw new IllegalArgumentException("YOU MUST ENTER THREE NUMBER AT LEAST "); + } + + + srategy.sort(data); + + return new int[]{data[0], data[1], data[2]}; + } +} + +//JavaConsol class + + +public class JavaConsol { + + public static void main(String[] args){ + + String input = null; + String algorithm = "selection"; //default + + //read CLI arguments + + for(String arg : args){ + if (arg.startsWith("--algorithm--")){ + algorithm = arg.split("=")[1].toLowerCase(); + } else { + input = arg; + } + } + +//STIDIN ---> use if there are no input + + if(input == null){ + Scanner scanner = new Scanner(System.in); + System.out.println("enter the numbers: "); + input = scanner.nextLine(); + } + + try { + //parse + int [] numbers = InputParser.parseInput(input); + + + //choose algorithm + SortSrategy srategy; + + if (algorithm.equals("bubble")){ + srategy = new BubbleSort(); + + } else { + srategy = new SelecionSort(); + + } + + //srvice + ComplaintService service = new ComplaintService(srategy); + + int [] result = service.getLowestThree(numbers); + + //output + System.out.println(""); + for (int num : result) { + System.out.println(num); + + } + + + } catch (IllegalArgumentException e){ + System.out.println("error: "+ e.getMessage()); + } + + } + +} From cf2618d6bcd9531dc9318e9f80f7a67e773c30eb Mon Sep 17 00:00:00 2001 From: Razansalam Date: Mon, 13 Apr 2026 14:58:34 +0400 Subject: [PATCH 2/3] fix error --- .../example/fromrazan/sprint5/JavaConsol.java | 191 ++++++++---------- 1 file changed, 88 insertions(+), 103 deletions(-) diff --git a/src/main/java/org/example/fromrazan/sprint5/JavaConsol.java b/src/main/java/org/example/fromrazan/sprint5/JavaConsol.java index cdd46528..ee8b03f2 100644 --- a/src/main/java/org/example/fromrazan/sprint5/JavaConsol.java +++ b/src/main/java/org/example/fromrazan/sprint5/JavaConsol.java @@ -1,174 +1,159 @@ package org.example.fromrazan.sprint5; -import java.util.Scanner; -//strategy interface -interface SortSrategy{ - void sort(int[] arr); +import java.util.Scanner; -} -//selecion sort +public class JavaConsol { -class SelecionSort implements SortSrategy{ - public void sort(int[] arr){ - for (int i = 0; i < arr.length - 1; i++){ - int minIndex = i; + public static void main(String[] args) { - for (int j= i + 1; j < arr.length; j++) { - if (arr[j] < arr[minIndex]){ - minIndex = j; - } - } + String input = null; + String algorithm = "selection"; //default + //read CLI arguments - int temp = arr[minIndex]; - arr[minIndex] = arr[i]; - arr[i] = temp; + for (String arg : args) { + if (arg.startsWith("--algorithm--")) { + algorithm = arg.split("=")[1].toLowerCase(); + } else { + input = arg; } } -} +//STIDIN ---> use if there are no input -// bubble sort + if (input == null) { + Scanner scanner = new Scanner(System.in); + System.out.println("enter the numbers: "); + input = scanner.nextLine(); + } -class BubbleSort implements SortSrategy { - public void sort(int [] arr) { - boolean swapped; + try { + //parse + int[] numbers = parseInput(input); - for (int i = 0; i < arr.length -1; i++){ - swapped = false; - for (int j = 0; j < arr.length - i - 1; j++){ - if (arr[j] > arr[j +1]){ + //choose algorithm + if (algorithm.equals("bubble")) { + BubbleSort(numbers); - int temp = arr[j]; - arr[j] = arr[j + 1]; - arr[j + 1] = temp; + } else { + SelecionSort(numbers); + + } + + //get lowest three + int[] result = getLowestThree(numbers); + + + //output + System.out.println("result : "); + for (int num : result) { + System.out.println(num); - swapped = true; + } - } - } - if (! swapped)break; + } catch (IllegalArgumentException e) { + System.out.println("error: " + e.getMessage()); } - } -} + } + //input parser -//input parser -class InputParser { public static int[] parseInput(String input) { + if (input == null || input.trim().isEmpty()) { throw new IllegalArgumentException("THE INPUT IS EMPTY : "); } - String [] parts = input.split(","); - int [] numbers = new int[parts.length]; + String[] parts = input.split(","); + int[] numbers = new int[parts.length]; - for (int i = 0; i < parts.length; i++){ + for (int i = 0; i < parts.length; i++) { - try { - numbers[i] = Integer.parseInt(parts[i].trim()); - } catch (NumberFormatException e){ - throw new IllegalArgumentException(" THE VALUE IS INCORRECT" + parts[i]); - } - } + try { + numbers[i] = Integer.parseInt(parts[i].trim()); + } catch (NumberFormatException e) { + throw new IllegalArgumentException(" THE VALUE IS INCORRECT" + parts[i]); + } + } - return numbers; + return numbers; } -} -//service layer + //selecion sort -class ComplaintService { - private SortSrategy srategy; + public static void SelecionSort(int[] arr) { + for (int i = 0; i < arr.length - 1; i++) { + int minIndex = i; - public ComplaintService(SortSrategy srategy){ - this.srategy = srategy; - } + for (int j = i + 1; j < arr.length; j++) { + if (arr[j] < arr[minIndex]) { + minIndex = j; + } + } - public int [] getLowestThree(int[] data){ - if (data.length > 3){ - throw new IllegalArgumentException("YOU MUST ENTER THREE NUMBER AT LEAST "); + int temp = arr[minIndex]; + arr[minIndex] = arr[i]; + arr[i] = temp; } + } + // bubble sort - srategy.sort(data); - return new int[]{data[0], data[1], data[2]}; - } -} - -//JavaConsol class + public static void BubbleSort(int[] arr) { + boolean swapped; + for (int i = 0; i < arr.length - 1; i++) { + swapped = false; -public class JavaConsol { + for (int j = 0; j < arr.length - i - 1; j++) { + if (arr[j] > arr[j + 1]) { - public static void main(String[] args){ - String input = null; - String algorithm = "selection"; //default + int temp = arr[j]; + arr[j] = arr[j + 1]; + arr[j + 1] = temp; - //read CLI arguments + swapped = true; - for(String arg : args){ - if (arg.startsWith("--algorithm--")){ - algorithm = arg.split("=")[1].toLowerCase(); - } else { - input = arg; + } } + + if (!swapped) break; } + } -//STIDIN ---> use if there are no input - if(input == null){ - Scanner scanner = new Scanner(System.in); - System.out.println("enter the numbers: "); - input = scanner.nextLine(); - } + // get lowest - try { - //parse - int [] numbers = InputParser.parseInput(input); + public static int[] getLowestThree(int[] data) { + if (data.length < 3) { + throw new IllegalArgumentException("enter at least 3 numbers"); + } - //choose algorithm - SortSrategy srategy; + return new int[]{data[0], data[1], data[2]}; + } +} - if (algorithm.equals("bubble")){ - srategy = new BubbleSort(); - } else { - srategy = new SelecionSort(); - } - //srvice - ComplaintService service = new ComplaintService(srategy); - int [] result = service.getLowestThree(numbers); - //output - System.out.println(""); - for (int num : result) { - System.out.println(num); - } - } catch (IllegalArgumentException e){ - System.out.println("error: "+ e.getMessage()); - } - } -} From 637a73a606ce76b5f2adc80e08fe5ef9f59f22db Mon Sep 17 00:00:00 2001 From: Razansalam Date: Sun, 26 Apr 2026 12:00:50 +0400 Subject: [PATCH 3/3] JAVA CONSOL OOP FIX --- .../fromrazan/Javaconsol/InputParser.java | 26 +++ .../fromrazan/Javaconsol/JavaConsol.java | 80 +++++++++ .../example/fromrazan/Javaconsol/Sorter.java | 59 +++++++ .../example/fromrazan/sprint5/JavaConsol.java | 159 ------------------ 4 files changed, 165 insertions(+), 159 deletions(-) create mode 100644 src/main/java/org/example/fromrazan/Javaconsol/InputParser.java create mode 100644 src/main/java/org/example/fromrazan/Javaconsol/JavaConsol.java create mode 100644 src/main/java/org/example/fromrazan/Javaconsol/Sorter.java delete mode 100644 src/main/java/org/example/fromrazan/sprint5/JavaConsol.java diff --git a/src/main/java/org/example/fromrazan/Javaconsol/InputParser.java b/src/main/java/org/example/fromrazan/Javaconsol/InputParser.java new file mode 100644 index 00000000..83ba9c93 --- /dev/null +++ b/src/main/java/org/example/fromrazan/Javaconsol/InputParser.java @@ -0,0 +1,26 @@ +package org.example.fromrazan.Javaconsol; + +public class InputParser { + + public static int[] parse(String input) { + + if (input == null || input.trim().isEmpty()) { + throw new IllegalArgumentException("THE INPUT IS EMPTY : "); + } + + String[] parts = input.split(","); + int[] numbers = new int[parts.length]; + + for (int i = 0; i < parts.length; i++) { + + try { + numbers[i] = Integer.parseInt(parts[i].trim()); + } catch (NumberFormatException e) { + throw new IllegalArgumentException(" THE VALUE IS INCORRECT" + parts[i]); + } + } + + return numbers; + + } +} diff --git a/src/main/java/org/example/fromrazan/Javaconsol/JavaConsol.java b/src/main/java/org/example/fromrazan/Javaconsol/JavaConsol.java new file mode 100644 index 00000000..ee7b2d93 --- /dev/null +++ b/src/main/java/org/example/fromrazan/Javaconsol/JavaConsol.java @@ -0,0 +1,80 @@ +package org.example.fromrazan.Javaconsol; + + +import java.util.Scanner; + + + + + +public class JavaConsol { + + public static void main(String[] args) { + + String input = null; + String algorithm = "selection"; //default + + //read CLI arguments + + for (String arg : args) { + if (arg.startsWith("--algorithm--")) { + algorithm = arg.split("=")[1].toLowerCase(); + } else { + input = arg; + } + } + +//STIDIN ---> use if there are no input + + if (input == null) { + Scanner scanner = new Scanner(System.in); + System.out.println("enter the numbers: "); + input = scanner.nextLine(); + } + + try { + //parse + int[] numbers = InputParser.parse(input); + + Sorter sorter = new Sorter(); + + //choose algorithm + + if (algorithm.equals("bubble")) { + sorter.BubbleSort(numbers); + + } else { + sorter.SelecionSort(numbers); + + } + + //get lowest three + int[] result = sorter.getLowestThree(numbers); + + + //output + System.out.println("result : "); + for (int num : result) { + System.out.println(num); + + } + + + } catch (IllegalArgumentException e) { + System.out.println("error: " + e.getMessage()); + } + + } + +} + + + + + + + + + + + diff --git a/src/main/java/org/example/fromrazan/Javaconsol/Sorter.java b/src/main/java/org/example/fromrazan/Javaconsol/Sorter.java new file mode 100644 index 00000000..4e51ffa8 --- /dev/null +++ b/src/main/java/org/example/fromrazan/Javaconsol/Sorter.java @@ -0,0 +1,59 @@ +package org.example.fromrazan.Javaconsol; + +public class Sorter { + + public void SelecionSort(int[] arr) { + for (int i = 0; i < arr.length - 1; i++) { + int minIndex = i; + + for (int j = i + 1; j < arr.length; j++) { + if (arr[j] < arr[minIndex]) { + minIndex = j; + } + } + + + int temp = arr[minIndex]; + arr[minIndex] = arr[i]; + arr[i] = temp; + } + } + + // bubble sort + + + public void BubbleSort(int[] arr) { + boolean swapped; + + for (int i = 0; i < arr.length - 1; i++) { + swapped = false; + + for (int j = 0; j < arr.length - i - 1; j++) { + if (arr[j] > arr[j + 1]) { + + + int temp = arr[j]; + arr[j] = arr[j + 1]; + arr[j + 1] = temp; + + swapped = true; + + } + } + + if (!swapped) break; + } + } + + + // get lowest + + public int[] getLowestThree(int[] data) { + + if (data.length < 3) { + throw new IllegalArgumentException("enter at least 3 numbers"); + } + + return new int[]{data[0], data[1], data[2]}; + } +} diff --git a/src/main/java/org/example/fromrazan/sprint5/JavaConsol.java b/src/main/java/org/example/fromrazan/sprint5/JavaConsol.java deleted file mode 100644 index ee8b03f2..00000000 --- a/src/main/java/org/example/fromrazan/sprint5/JavaConsol.java +++ /dev/null @@ -1,159 +0,0 @@ -package org.example.fromrazan.sprint5; - - -import java.util.Scanner; - - - - - -public class JavaConsol { - - public static void main(String[] args) { - - String input = null; - String algorithm = "selection"; //default - - //read CLI arguments - - for (String arg : args) { - if (arg.startsWith("--algorithm--")) { - algorithm = arg.split("=")[1].toLowerCase(); - } else { - input = arg; - } - } - -//STIDIN ---> use if there are no input - - if (input == null) { - Scanner scanner = new Scanner(System.in); - System.out.println("enter the numbers: "); - input = scanner.nextLine(); - } - - try { - //parse - int[] numbers = parseInput(input); - - - //choose algorithm - - if (algorithm.equals("bubble")) { - BubbleSort(numbers); - - } else { - SelecionSort(numbers); - - } - - //get lowest three - int[] result = getLowestThree(numbers); - - - //output - System.out.println("result : "); - for (int num : result) { - System.out.println(num); - - } - - - } catch (IllegalArgumentException e) { - System.out.println("error: " + e.getMessage()); - } - - } - //input parser - - public static int[] parseInput(String input) { - - if (input == null || input.trim().isEmpty()) { - throw new IllegalArgumentException("THE INPUT IS EMPTY : "); - } - - String[] parts = input.split(","); - int[] numbers = new int[parts.length]; - - for (int i = 0; i < parts.length; i++) { - - try { - numbers[i] = Integer.parseInt(parts[i].trim()); - } catch (NumberFormatException e) { - throw new IllegalArgumentException(" THE VALUE IS INCORRECT" + parts[i]); - } - } - - return numbers; - - } - - //selecion sort - - - public static void SelecionSort(int[] arr) { - for (int i = 0; i < arr.length - 1; i++) { - int minIndex = i; - - for (int j = i + 1; j < arr.length; j++) { - if (arr[j] < arr[minIndex]) { - minIndex = j; - } - } - - - int temp = arr[minIndex]; - arr[minIndex] = arr[i]; - arr[i] = temp; - } - } - - // bubble sort - - - public static void BubbleSort(int[] arr) { - boolean swapped; - - for (int i = 0; i < arr.length - 1; i++) { - swapped = false; - - for (int j = 0; j < arr.length - i - 1; j++) { - if (arr[j] > arr[j + 1]) { - - - int temp = arr[j]; - arr[j] = arr[j + 1]; - arr[j + 1] = temp; - - swapped = true; - - } - } - - if (!swapped) break; - } - } - - - // get lowest - - public static int[] getLowestThree(int[] data) { - - if (data.length < 3) { - throw new IllegalArgumentException("enter at least 3 numbers"); - } - - return new int[]{data[0], data[1], data[2]}; - } -} - - - - - - - - - - -