From 68102a13a8344fafb9d69d615bd558b64cfdfa2e Mon Sep 17 00:00:00 2001 From: Vyaceslav Sv Date: Sun, 29 Mar 2020 16:45:23 +0300 Subject: [PATCH] commit 1 lesson 2 crated project --- src/GeekBrains/ArrayTest.java | 33 ++++++++++++++++++++++++ src/GeekBrains/Main.java | 31 ++++++++++++++++++++++ src/GeekBrains/MyArrayDataException.java | 7 +++++ src/GeekBrains/MyArraySizeException.java | 7 +++++ 4 files changed, 78 insertions(+) create mode 100644 src/GeekBrains/ArrayTest.java create mode 100644 src/GeekBrains/Main.java create mode 100644 src/GeekBrains/MyArrayDataException.java create mode 100644 src/GeekBrains/MyArraySizeException.java diff --git a/src/GeekBrains/ArrayTest.java b/src/GeekBrains/ArrayTest.java new file mode 100644 index 0000000..5ec2fd2 --- /dev/null +++ b/src/GeekBrains/ArrayTest.java @@ -0,0 +1,33 @@ +package GeekBrains; + +import java.io.IOException; +import java.util.Arrays; + +public class ArrayTest { + public void arrMh(String[][] array) throws MyArraySizeException,MyArrayDataException { + if (array.length==4 && array[0].length==4 && array[1].length==4 && array[2].length==4 && array[3].length==4){ // проверка размера массива + int s = 0; + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + try { + s += (Integer.parseInt(array[i][j])); + } catch (NumberFormatException e) { + // e.printStackTrace(); + throw new MyArrayDataException("преобразование не удалось: в ячейке массива " + +"["+i+"]"+"["+j+"]"+" записано " +array[i][j]); + } + } + } + System.out.println(Arrays.deepToString(array)); + System.out.println("Сумма массива: "+s);} + else { + try { + throw new MyArraySizeException("Задан массив неверного размера"); + }catch (MyArraySizeException e){ + e.printStackTrace(); + System.out.println("Задайте новый массив"); + } + } + } +} + diff --git a/src/GeekBrains/Main.java b/src/GeekBrains/Main.java new file mode 100644 index 0000000..3152304 --- /dev/null +++ b/src/GeekBrains/Main.java @@ -0,0 +1,31 @@ +package GeekBrains; + +import org.w3c.dom.ls.LSOutput; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Arrays; +//Напишите метод, на вход которого подаётся двумерный строковый массив размером 4х4. При подаче массива другого размера необходимо бросить исключение MyArraySizeException. +// Далее метод должен пройтись по всем элементам массива, преобразовать в int и просуммировать. Если в каком-то элементе массива преобразование не удалось (например, в ячейке лежит символ или текст вместо числа), должно быть брошено исключение MyArrayDataException с детализацией, в как1ой именно ячейке лежат неверные данные. +// В методе main() вызвать полученный метод, обработать возможные исключения MySizeArrayException и MyArrayDataException и вывести результат расчета. + + +public class Main { + public static void main(String[] args) throws MyArraySizeException { + String[][]arr ={ + {"1","1","1","1"}, + {"2","2","2"}, + {"3","3","3","3"}, + {"4","4","4","4"}}; + + String[][]arrToo =new String[4][4]; + ArrayTest arrr = new ArrayTest(); + arrr.arrMh(arr); + + } +} + + + + + diff --git a/src/GeekBrains/MyArrayDataException.java b/src/GeekBrains/MyArrayDataException.java new file mode 100644 index 0000000..753823a --- /dev/null +++ b/src/GeekBrains/MyArrayDataException.java @@ -0,0 +1,7 @@ +package GeekBrains; + +public class MyArrayDataException extends NumberFormatException { + public MyArrayDataException(String s) { + super(s); + } +} diff --git a/src/GeekBrains/MyArraySizeException.java b/src/GeekBrains/MyArraySizeException.java new file mode 100644 index 0000000..56dbd25 --- /dev/null +++ b/src/GeekBrains/MyArraySizeException.java @@ -0,0 +1,7 @@ +package GeekBrains; + +public class MyArraySizeException extends ArrayIndexOutOfBoundsException{ + public MyArraySizeException(String message) { + super(message); + } +}