From aa3f81c348af1b3e4c393e32235799ff598dbdef Mon Sep 17 00:00:00 2001 From: minseon33 Date: Thu, 26 Oct 2023 11:22:20 +0900 Subject: [PATCH 1/3] no message --- src/main/java/Main.java | 34 ++++++++++++++++++++++++++++ src/main/java/domain/Coordinate.java | 22 ++++++++++++++++++ src/main/java/view/InputView.java | 32 ++++++++++++++++++++++++++ src/main/java/view/OutputView.java | 4 ++++ 4 files changed, 92 insertions(+) create mode 100644 src/main/java/Main.java create mode 100644 src/main/java/domain/Coordinate.java create mode 100644 src/main/java/view/InputView.java create mode 100644 src/main/java/view/OutputView.java diff --git a/src/main/java/Main.java b/src/main/java/Main.java new file mode 100644 index 00000000..4ec112ff --- /dev/null +++ b/src/main/java/Main.java @@ -0,0 +1,34 @@ +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Main { + + public static void main(String[] args) { + + String[] regexArray = { + "\\d{3}-\\d{2}-\\d{4}", // 예: 123-45-6789 + "\\d{4}-\\d{3}-\\d{3}", // 예: 1234-567-890 + "\\w+@\\w+\\.\\w+" // 예: example@email.com + }; + + String userInput = "123-45-6789"; // 사용자 입력값 + + boolean isValid = false; + + for (String regex : regexArray) { + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(userInput); + + if (matcher.matches()) { + isValid = true; + break; // 하나라도 일치하면 루프 종료 + } + } + + if (isValid) { + System.out.println("입력값이 올바른 패턴 중 하나와 일치합니다."); + } else { + System.out.println("올바른 패턴과 일치하지 않습니다."); + } + } + } diff --git a/src/main/java/domain/Coordinate.java b/src/main/java/domain/Coordinate.java new file mode 100644 index 00000000..ff658389 --- /dev/null +++ b/src/main/java/domain/Coordinate.java @@ -0,0 +1,22 @@ +package domain; + +public class Coordinate { + int x; + int y; + + public Coordinate(String coordinateInput) { + removeFirstAndLastChar(coordinateInput); + String[] splitCoordinate = coordinateInput.split(","); + this.x = Integer.parseInt(splitCoordinate[0]); + this.y = Integer.parseInt(splitCoordinate[1]); + } + + /** + * (10,13)에서 () 없애주는 메서드 + * @param coordinateInput : (10,13) + * @return : 10,13 + */ + private String removeFirstAndLastChar(String coordinateInput){ + return coordinateInput.substring(1,coordinateInput.length() - 1); + } +} diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java new file mode 100644 index 00000000..328d28ed --- /dev/null +++ b/src/main/java/view/InputView.java @@ -0,0 +1,32 @@ +package view; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class InputView { + + private BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + String input; + + + + /** + * 사용자가 점에 대한 좌표 정보를 입력하는 메뉴를 구성한다. + * 좌표 정보는 괄호"(", ")"로 둘러쌓여 있으며 쉼표(,)로 x값과 y값을 구분한다. + * 좌표값을 두 개 입력한 경우, 두 점을 있는 직선으로 가정한다. 좌표값과 좌표값 사이는 '-' 문자로 구분한다. + * (10,10)-(14,15) 이렇게 입력하면 선길이 구하는것, + * (10,10)-(22,10)-(22,18)-(10,18) 이렇게 입력하면 면길이, + * (10,10)-(14,15)-(20,8) 이렇게 입력하면 삼각형 넓이 + * ! 정규식을 이용해서 입력값을 검증하자.. + * + */ + + public void creatCoordinate() throws IOException { + System.out.println("좌표를 입력하세요"); + input = br.readLine(); + + } + + +} diff --git a/src/main/java/view/OutputView.java b/src/main/java/view/OutputView.java new file mode 100644 index 00000000..d8f9743c --- /dev/null +++ b/src/main/java/view/OutputView.java @@ -0,0 +1,4 @@ +package view; + +public class OutputView { +} From 0eb2f40bbae4a4cb1895eecc16bb62e47a4acb4d Mon Sep 17 00:00:00 2001 From: minseon33 Date: Mon, 30 Oct 2023 09:34:15 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Feat=20:=20=EC=A2=8C=ED=91=9C=20=EA=B3=84?= =?UTF-8?q?=EC=82=B0=EA=B8=B0=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Main.java | 51 ++++++----- src/main/java/calculator/Calculator.java | 11 +++ .../java/calculator/CalculatorFactory.java | 41 +++++++++ .../CoordinateLengthCalculator.java | 32 +++++++ .../java/calculator/SquareCalculator.java | 90 +++++++++++++++++++ .../java/calculator/TriangleCalculator.java | 45 ++++++++++ src/main/java/domain/Coordinate.java | 29 +++++- src/main/java/view/InputView.java | 43 +++++---- src/main/java/view/OutputView.java | 17 +++- src/test/java/domain/CoordinateTest.java | 33 +++++++ 10 files changed, 347 insertions(+), 45 deletions(-) create mode 100644 src/main/java/calculator/Calculator.java create mode 100644 src/main/java/calculator/CalculatorFactory.java create mode 100644 src/main/java/calculator/CoordinateLengthCalculator.java create mode 100644 src/main/java/calculator/SquareCalculator.java create mode 100644 src/main/java/calculator/TriangleCalculator.java create mode 100644 src/test/java/domain/CoordinateTest.java diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 4ec112ff..fb2df707 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,34 +1,33 @@ -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import calculator.Calculator; +import calculator.CalculatorFactory; +import domain.Coordinate; +import view.InputView; +import view.OutputView; -public class Main { - - public static void main(String[] args) { - - String[] regexArray = { - "\\d{3}-\\d{2}-\\d{4}", // 예: 123-45-6789 - "\\d{4}-\\d{3}-\\d{3}", // 예: 1234-567-890 - "\\w+@\\w+\\.\\w+" // 예: example@email.com - }; - - String userInput = "123-45-6789"; // 사용자 입력값 +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; - boolean isValid = false; - - for (String regex : regexArray) { - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(userInput); +public class Main { - if (matcher.matches()) { - isValid = true; - break; // 하나라도 일치하면 루프 종료 + public static void main(String[] args) throws IOException { + InputView inputView = new InputView(); + OutputView outputView = new OutputView(); + List coordinateList = new ArrayList<>(); + double result = 0; + CalculatorFactory calculatorFactory = new CalculatorFactory(coordinateList,result); + + while (result==0){ + try { + String[] inputArray = inputView.creatCoordinate(); + Calculator calculator = calculatorFactory.calculateFactory(inputArray); + result = calculator.calculator(); + System.out.println(outputView.resultOutput(calculator,result)); + }catch (IOException e){ + System.out.println(e.getMessage()); + coordinateList.clear(); } } - if (isValid) { - System.out.println("입력값이 올바른 패턴 중 하나와 일치합니다."); - } else { - System.out.println("올바른 패턴과 일치하지 않습니다."); - } } } diff --git a/src/main/java/calculator/Calculator.java b/src/main/java/calculator/Calculator.java new file mode 100644 index 00000000..9d974319 --- /dev/null +++ b/src/main/java/calculator/Calculator.java @@ -0,0 +1,11 @@ +package calculator; + +import java.io.IOException; + +public interface Calculator { + + double calculator() throws IOException; + + int getCoordinateCount(); + +} diff --git a/src/main/java/calculator/CalculatorFactory.java b/src/main/java/calculator/CalculatorFactory.java new file mode 100644 index 00000000..59af04f4 --- /dev/null +++ b/src/main/java/calculator/CalculatorFactory.java @@ -0,0 +1,41 @@ +package calculator; + +import domain.Coordinate; + +import java.io.IOException; +import java.util.List; + +public class CalculatorFactory { + List coordinateList; + double result; + + + public CalculatorFactory(List coordinateList,double result) { + this.coordinateList = coordinateList; + this.result = result; + } + + public Calculator calculateFactory(String[] splitInput) throws IOException { + coordinateList = addCoordinate(splitInput); + + if(coordinateList.size() == 2){ + return new CoordinateLengthCalculator(coordinateList,result); + } + if(coordinateList.size() == 3){ + return new TriangleCalculator(coordinateList,result); + } + if(coordinateList.size() == 4){ + return new SquareCalculator(coordinateList,result); + } + return null; + } + + private List addCoordinate(String[] splitInput) throws IOException { + for (String originalCoordinate:splitInput) { + Coordinate coordinate = new Coordinate(originalCoordinate); + coordinateList.add(coordinate); + } + return coordinateList; + } + +} diff --git a/src/main/java/calculator/CoordinateLengthCalculator.java b/src/main/java/calculator/CoordinateLengthCalculator.java new file mode 100644 index 00000000..b806c72b --- /dev/null +++ b/src/main/java/calculator/CoordinateLengthCalculator.java @@ -0,0 +1,32 @@ +package calculator; + +import domain.Coordinate; + +import java.io.IOException; +import java.util.List; + +public class CoordinateLengthCalculator implements Calculator{ + List coordinateList; + double result; + + public CoordinateLengthCalculator(List coordinateList, double result) { + this.coordinateList = coordinateList; + this.result = result; + } + + @Override + public double calculator() { + int x = Math.abs(coordinateList.get(0).getX() - coordinateList.get(1).getX()); + int y = Math.abs(coordinateList.get(0).getY() - coordinateList.get(1).getY()); + double somPow = Math.pow(x, 2) + Math.pow(y, 2); + result = Math.sqrt(somPow); + return result; + } + + @Override + public int getCoordinateCount() { + return coordinateList.size(); + } + + +} diff --git a/src/main/java/calculator/SquareCalculator.java b/src/main/java/calculator/SquareCalculator.java new file mode 100644 index 00000000..9d62acf4 --- /dev/null +++ b/src/main/java/calculator/SquareCalculator.java @@ -0,0 +1,90 @@ +package calculator; + +import domain.Coordinate; + +import java.io.IOException; +import java.util.List; + +public class SquareCalculator implements Calculator{ + List coordinateList; + double result; + + public SquareCalculator(List coordinateList, double result) { + this.coordinateList = coordinateList; + this.result = result; + } + + @Override + public double calculator() throws IOException { + System.out.println("사각형 넓이 구하기"); + //삐뚤어진 사각형인지 아닌지 먼저 검증 + validateSquare(); + //가로길이 구하기 + double width = calculateWidth(coordinateList); + //세로길이 구하기 + double height = calculateHeight(coordinateList); + //넓이 계산하기 + return width * height; + } + + private void validateSquare() throws IOException { + //꼭지점 A(x,y), B(x,y),C(x,y),D(x,y) + //정사각형 또는 직사각형은 x가 두개가 같고 y가 두개가 같다. + int referenceX = coordinateList.get(0).getX(); + int referenceY = coordinateList.get(0).getY(); + int count = 0; + + for (int i = 1; i < coordinateList.size(); i++) { + if(coordinateList.get(i).getX()==referenceX &&coordinateList.get(i).getY() == referenceY){ + throw new IOException("정사각형 또는 직사각형의 좌표를 입력해주세요."); + } + if(coordinateList.get(i).getX()==referenceX || coordinateList.get(i).getY() == referenceY){ + count++; + } + } + + if (!(count ==2)){ + throw new IOException("정사각형 또는 직사각형의 좌표를 입력해주세요."); + } + + } + + @Override + public int getCoordinateCount() { + return coordinateList.size(); + } + + private double calculateWidth(List coordinateList){ + //y좌표가 같은것끼리 찾아서 ax-bx를 하면 가로길이 나옴. + Coordinate aCoordinate; + Coordinate bCoordinate = null; + + aCoordinate = coordinateList.get(0); + + for (int i = 1; i < coordinateList.size(); i++) { + if(aCoordinate.getY()==coordinateList.get(i).getY()){ + bCoordinate = coordinateList.get(i); + break; + } + } + + return Math.abs(aCoordinate.getX()-bCoordinate.getX()); + } + + private double calculateHeight(List coordinateList){ + //x좌표가 같은것끼리 찾아서 ay-by를 하면 세로길이 나옴. + Coordinate aCoordinate = null; + Coordinate bCoordinate = null; + + aCoordinate = coordinateList.get(0); + + for (int i = 1; i < coordinateList.size(); i++) { + if(aCoordinate.getX()==coordinateList.get(i).getX()){ + bCoordinate = coordinateList.get(i); + break; + } + } + + return Math.abs(aCoordinate.getY()-bCoordinate.getY()); + } +} diff --git a/src/main/java/calculator/TriangleCalculator.java b/src/main/java/calculator/TriangleCalculator.java new file mode 100644 index 00000000..7141a9a2 --- /dev/null +++ b/src/main/java/calculator/TriangleCalculator.java @@ -0,0 +1,45 @@ +package calculator; + +import domain.Coordinate; + +import java.util.List; + +public class TriangleCalculator implements Calculator{ + List coordinateList; + double result; + + public TriangleCalculator(List coordinateList, double result) { + this.coordinateList = coordinateList; + this.result = result; + } + + @Override + public double calculator() { + //꼭지점 A,B,C + Coordinate coordinateA = coordinateList.get(0); + Coordinate coordinateB = coordinateList.get(1); + Coordinate coordinateC = coordinateList.get(2); + //변AB,변BC,변CA 의 길이 + double lineLengthAB = calculateLineLength(coordinateA, coordinateB); + double lineLengthBC = calculateLineLength(coordinateB, coordinateC); + double lineLengthCA = calculateLineLength(coordinateC, coordinateA); + //헤론의 법칙 :(변AB+변BC+변CA)/2 = s + double s = (lineLengthAB + lineLengthBC + lineLengthCA)/2; + // 루트(s*(s-AB)*(s-BC)*(s-CA)) + result = Math.sqrt(s * (s - lineLengthAB) * (s - lineLengthBC) * (s - lineLengthCA)); + return result; + } + + @Override + public int getCoordinateCount() { + return coordinateList.size(); + } + + private double calculateLineLength(Coordinate coordinateA, Coordinate coordinateB){ + int x = Math.abs(coordinateA.getX() - coordinateB.getX()); + int y = Math.abs(coordinateA.getY() - coordinateB.getY()); + double somPow = Math.pow(x, 2) + Math.pow(y, 2); + result = Math.sqrt(somPow); + return result; + } +} diff --git a/src/main/java/domain/Coordinate.java b/src/main/java/domain/Coordinate.java index ff658389..1c9a55ad 100644 --- a/src/main/java/domain/Coordinate.java +++ b/src/main/java/domain/Coordinate.java @@ -1,12 +1,19 @@ package domain; +import java.io.IOException; + public class Coordinate { int x; int y; - public Coordinate(String coordinateInput) { - removeFirstAndLastChar(coordinateInput); + public Coordinate(String coordinateInput) throws IOException { + //인풋값에서 괄호 없애기 + coordinateInput = removeFirstAndLastChar(coordinateInput); + //,기준으로 잘라서 x,y좌표 String[] splitCoordinate = coordinateInput.split(","); + //좌표 크기 검증 + validateCoordinateSize(splitCoordinate); + this.x = Integer.parseInt(splitCoordinate[0]); this.y = Integer.parseInt(splitCoordinate[1]); } @@ -17,6 +24,22 @@ public Coordinate(String coordinateInput) { * @return : 10,13 */ private String removeFirstAndLastChar(String coordinateInput){ - return coordinateInput.substring(1,coordinateInput.length() - 1); + return coordinateInput.substring(1,coordinateInput.length()-1); + } + + private void validateCoordinateSize(String[] splitCoordinate) throws IOException { + for (String coordinate:splitCoordinate) { + if (Integer.parseInt(coordinate)<0 || Integer.parseInt(coordinate)>24){ + throw new IOException("좌표값은 0부터 24까지만 입력해야합니다."); + } + } + } + + public int getX() { + return x; + } + + public int getY() { + return y; } } diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index 328d28ed..32edd388 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -5,28 +5,41 @@ import java.io.InputStreamReader; public class InputView { - private BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input; - - - /** - * 사용자가 점에 대한 좌표 정보를 입력하는 메뉴를 구성한다. - * 좌표 정보는 괄호"(", ")"로 둘러쌓여 있으며 쉼표(,)로 x값과 y값을 구분한다. - * 좌표값을 두 개 입력한 경우, 두 점을 있는 직선으로 가정한다. 좌표값과 좌표값 사이는 '-' 문자로 구분한다. - * (10,10)-(14,15) 이렇게 입력하면 선길이 구하는것, - * (10,10)-(22,10)-(22,18)-(10,18) 이렇게 입력하면 면길이, - * (10,10)-(14,15)-(20,8) 이렇게 입력하면 삼각형 넓이 - * ! 정규식을 이용해서 입력값을 검증하자.. - * - */ - - public void creatCoordinate() throws IOException { + public String[] creatCoordinate() throws IOException { + System.out.println("(x,y)-(x,y)또는 (x,y)-(x,y)-(x,y)또는 (x,y)-(x,y)-(x,y)-(x,y)형식으로"); System.out.println("좌표를 입력하세요"); input = br.readLine(); + validateInput(input); + return input.split("-"); + } + private void validateInput(String input) throws IOException{ + String coordinateInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; + String triangleInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; + String quadrangleInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; + +// String coordinateInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; +// String triangleInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; +// String quadrangleInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; + + if(!(input.matches(coordinateInput)||input.matches(triangleInput)||input.matches(quadrangleInput))){ + throw new IOException("입력값을 형식에 맞게 입력해주세요."); + } } + + + + + + + + + + + } diff --git a/src/main/java/view/OutputView.java b/src/main/java/view/OutputView.java index d8f9743c..4c209e9a 100644 --- a/src/main/java/view/OutputView.java +++ b/src/main/java/view/OutputView.java @@ -1,4 +1,19 @@ package view; +import calculator.Calculator; +import domain.Coordinate; + +import java.util.List; + public class OutputView { -} + + + public String resultOutput(Calculator calculator, double result){ + if(calculator.getCoordinateCount()==2) return String.format("두 좌표의 길이는 %.6f",result); + if(calculator.getCoordinateCount()==3) return String.format("삼각형의 넓이는 %.2f",result); + if(calculator.getCoordinateCount()==4) return String.format("사각형의 넓이는 %.1f",result); + + return ""; + }; + } + diff --git a/src/test/java/domain/CoordinateTest.java b/src/test/java/domain/CoordinateTest.java new file mode 100644 index 00000000..35465b5d --- /dev/null +++ b/src/test/java/domain/CoordinateTest.java @@ -0,0 +1,33 @@ +package domain; + +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import java.io.IOException; + +import static org.junit.jupiter.api.Assertions.*; + +class CoordinateTest { + + @DisplayName("Coordinate가 잘 생성되는지 테스트") + @Test + void createCoordinate() throws IOException { + //given + //when + Coordinate coordinate = new Coordinate("(14,24)"); + //then + Assertions.assertThat(coordinate.x).isEqualTo(14); + Assertions.assertThat(coordinate.y).isEqualTo(24); + } + + @DisplayName("좌표값은 최대 24까지만 입력해야 한다.") + @Test + void validateCoordinateSize() throws IOException { + //given + //when + //then + Assertions.assertThatThrownBy(()-> new Coordinate("(50,24)")).hasMessage("좌표값은 0부터 24까지만 입력해야합니다."); + } + +} \ No newline at end of file From 952df69d806338c5ca0bf92f191487f8a2df44d3 Mon Sep 17 00:00:00 2001 From: minseon33 Date: Mon, 30 Oct 2023 09:55:33 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Fix=20:=20=EC=A0=91=EA=B7=BC=EC=A0=9C?= =?UTF-8?q?=EC=96=B4=EC=9E=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/calculator/CalculatorFactory.java | 10 +++++----- .../java/calculator/CoordinateLengthCalculator.java | 9 +++------ src/main/java/calculator/SquareCalculator.java | 6 ++---- src/main/java/calculator/TriangleCalculator.java | 12 ++++-------- src/main/java/view/InputView.java | 4 ---- 5 files changed, 14 insertions(+), 27 deletions(-) diff --git a/src/main/java/calculator/CalculatorFactory.java b/src/main/java/calculator/CalculatorFactory.java index 59af04f4..c3d2100a 100644 --- a/src/main/java/calculator/CalculatorFactory.java +++ b/src/main/java/calculator/CalculatorFactory.java @@ -6,8 +6,8 @@ import java.util.List; public class CalculatorFactory { - List coordinateList; - double result; + private List coordinateList; + private double result; public CalculatorFactory(List coordinateList,double result) { @@ -19,13 +19,13 @@ public Calculator calculateFactory(String[] splitInput) throws IOException { coordinateList = addCoordinate(splitInput); if(coordinateList.size() == 2){ - return new CoordinateLengthCalculator(coordinateList,result); + return new CoordinateLengthCalculator(coordinateList); } if(coordinateList.size() == 3){ - return new TriangleCalculator(coordinateList,result); + return new TriangleCalculator(coordinateList); } if(coordinateList.size() == 4){ - return new SquareCalculator(coordinateList,result); + return new SquareCalculator(coordinateList); } return null; } diff --git a/src/main/java/calculator/CoordinateLengthCalculator.java b/src/main/java/calculator/CoordinateLengthCalculator.java index b806c72b..4793786a 100644 --- a/src/main/java/calculator/CoordinateLengthCalculator.java +++ b/src/main/java/calculator/CoordinateLengthCalculator.java @@ -6,12 +6,10 @@ import java.util.List; public class CoordinateLengthCalculator implements Calculator{ - List coordinateList; - double result; + private final List coordinateList; - public CoordinateLengthCalculator(List coordinateList, double result) { + public CoordinateLengthCalculator(List coordinateList) { this.coordinateList = coordinateList; - this.result = result; } @Override @@ -19,8 +17,7 @@ public double calculator() { int x = Math.abs(coordinateList.get(0).getX() - coordinateList.get(1).getX()); int y = Math.abs(coordinateList.get(0).getY() - coordinateList.get(1).getY()); double somPow = Math.pow(x, 2) + Math.pow(y, 2); - result = Math.sqrt(somPow); - return result; + return Math.sqrt(somPow); } @Override diff --git a/src/main/java/calculator/SquareCalculator.java b/src/main/java/calculator/SquareCalculator.java index 9d62acf4..13524cc5 100644 --- a/src/main/java/calculator/SquareCalculator.java +++ b/src/main/java/calculator/SquareCalculator.java @@ -6,12 +6,10 @@ import java.util.List; public class SquareCalculator implements Calculator{ - List coordinateList; - double result; + private final List coordinateList; - public SquareCalculator(List coordinateList, double result) { + public SquareCalculator(List coordinateList) { this.coordinateList = coordinateList; - this.result = result; } @Override diff --git a/src/main/java/calculator/TriangleCalculator.java b/src/main/java/calculator/TriangleCalculator.java index 7141a9a2..40bd05c8 100644 --- a/src/main/java/calculator/TriangleCalculator.java +++ b/src/main/java/calculator/TriangleCalculator.java @@ -5,12 +5,10 @@ import java.util.List; public class TriangleCalculator implements Calculator{ - List coordinateList; - double result; + private final List coordinateList; - public TriangleCalculator(List coordinateList, double result) { + public TriangleCalculator(List coordinateList) { this.coordinateList = coordinateList; - this.result = result; } @Override @@ -26,8 +24,7 @@ public double calculator() { //헤론의 법칙 :(변AB+변BC+변CA)/2 = s double s = (lineLengthAB + lineLengthBC + lineLengthCA)/2; // 루트(s*(s-AB)*(s-BC)*(s-CA)) - result = Math.sqrt(s * (s - lineLengthAB) * (s - lineLengthBC) * (s - lineLengthCA)); - return result; + return Math.sqrt(s * (s - lineLengthAB) * (s - lineLengthBC) * (s - lineLengthCA)); } @Override @@ -39,7 +36,6 @@ private double calculateLineLength(Coordinate coordinateA, Coordinate coordinate int x = Math.abs(coordinateA.getX() - coordinateB.getX()); int y = Math.abs(coordinateA.getY() - coordinateB.getY()); double somPow = Math.pow(x, 2) + Math.pow(y, 2); - result = Math.sqrt(somPow); - return result; + return Math.sqrt(somPow); } } diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index 32edd388..7aa5a895 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -21,10 +21,6 @@ private void validateInput(String input) throws IOException{ String triangleInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; String quadrangleInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; -// String coordinateInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; -// String triangleInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; -// String quadrangleInput = "\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)-\\(\\d+,\\d+\\)"; - if(!(input.matches(coordinateInput)||input.matches(triangleInput)||input.matches(quadrangleInput))){ throw new IOException("입력값을 형식에 맞게 입력해주세요."); }