Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions proJect/src/main/java/anlov/java/Array.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package anlov.java;

public class Array {

private static int sumArray;
private final static int ARRAYSIZE = 4;

private Array() {
}

public static int getSumArray(String[][] array) throws MyArraySizeException, MyArrayDataException {
checkArraySize(array);

for (int i = 0; i < ARRAYSIZE; i++) {
for (int j = 0; j < ARRAYSIZE; j++) {
if (!isInt(array[i][j])) {
throw new MyArrayDataException("Введенное значение, не является числом", i, j);
}
sumArray += Integer.parseInt(array[i][j]);
}
}
return sumArray;
}

private static void checkArraySize(String[][] array) throws MyArraySizeException {
int rowArray = array.length;
int columnArray = array[0].length;

if (rowArray > ARRAYSIZE || columnArray > ARRAYSIZE) {
throw new MyArraySizeException("Массив выходит за границы допустимого, попробуйте ввести масси 4х4",
rowArray, columnArray);
}
if (rowArray < ARRAYSIZE || columnArray < ARRAYSIZE) {
throw new MyArraySizeException("Размер массива меньше допустимого, попробуйте ввести массив 4х4",
rowArray, columnArray);
}
}

private static boolean isInt(String convert) {
try {
Integer.parseInt(convert);
return true;
} catch (NumberFormatException notInt) {
return false;
}
}
}
13 changes: 11 additions & 2 deletions proJect/src/main/java/anlov/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
package anlov.java;


import java.util.Arrays;

public class Main {
public static void main(String[] args) {
String[][] array = {{"1", "2", "3", "4"}, {"5", "6", "7", "8"},
{"9", "15", "11", "12"}, {"13", "14", "15", "16"}};

try {
System.out.println(Array.getSumArray(array));
} catch (MyArraySizeException size) {
System.out.println(size.getMessage() + ", введенный массив имеет размер " + size.getArraySize());
} catch (MyArrayDataException data) {
System.out.println(data.getMessage() + " " + data.getArrayIndex());
}

}
}
17 changes: 17 additions & 0 deletions proJect/src/main/java/anlov/java/MyArrayDataException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package anlov.java;


public class MyArrayDataException extends Exception {
private final int rowArrayIndex;
private final int columnArrayIndex;

public MyArrayDataException(String info, int rowArrayIndex, int columnArrayIndex) {
super(info);
this.rowArrayIndex = rowArrayIndex;
this.columnArrayIndex = columnArrayIndex;
}

public String getArrayIndex() {
return "[" + rowArrayIndex + "]" + "[" + columnArrayIndex + "]";
}
}
17 changes: 17 additions & 0 deletions proJect/src/main/java/anlov/java/MyArraySizeException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package anlov.java;

public class MyArraySizeException extends Exception {

private final int rowArray;
private final int columnArray;

public MyArraySizeException(String info, int rowArray, int columnArray) {
super(info);
this.rowArray = rowArray;
this.columnArray = columnArray;
}

public String getArraySize() {
return rowArray + "x" + columnArray;
}
}