From e9ae4f5a5d779f9bbbed0a37e69813a4d8ae2473 Mon Sep 17 00:00:00 2001 From: Igor Afanasenko Date: Mon, 5 Dec 2016 16:00:31 +0200 Subject: [PATCH 1/5] ExtendedeInteger done. --- .../java/extendedinteger/ExtendedInteger.java | 120 +++++++++++++++--- 1 file changed, 99 insertions(+), 21 deletions(-) diff --git a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java index a76f6fe..72d987b 100644 --- a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java +++ b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java @@ -4,116 +4,194 @@ * Integer representation with some additional features */ public class ExtendedInteger { + private int value; public ExtendedInteger(int value) { - //TODO: implement me + this.value = value; } /** * Check whether specified value is even + * * @param value to check * @return true if value is even, false - otherwise */ public static boolean isEven(int value) { - //TODO: implement me + if ((value & 1) == 0) { + return true; + } return false; } /** * Check whether specified value is odd + * * @param value to check * @return true if value is odd, false - otherwise */ public static boolean isOdd(int value) { - //TODO: implement me + if ((value & 1) == 1) { + return true; + } return false; } /** * Check whether specified value is prime + * * @param value to check * @return true if value is prime, false - otherwise */ public static boolean isPrime(int value) { - //TODO: implement me - return false; + if (value <= 1) { + return false; + } else { + for (int i = 2; i < value; i++) { + if (value % i == 0) { + return false; + } + } + } + return true; } /** * Parse specified char array and create instance of {@code ExtendedInteger} + * * @param value to parse * @return instance of {@code ExtendedInteger} or * null in case specified value is null or the value does not contain a parsable integer */ public static ExtendedInteger parseInt(char[] value) { - //TODO: implement me - return null; + + int result = 0; + int resultSum = 0; + int j = 0; + int k = 0; + int first = 1; + int lengthChar = value.length; + if (lengthChar == 0) { + return null; + } + if (value[0] == '-') { + first = -1; + } else { + k = -1; + } + for (int i = lengthChar - 1; i != k; i--) { + if (Character.isDigit(value[i])) { + result = Character.getNumericValue(value[i]); + result *= Math.pow(10, j++); + } else { + return null; + } + resultSum += result; + } + resultSum *= first; + ExtendedInteger resultInt = new ExtendedInteger(resultSum); + return resultInt; } /** * Parse specified string and create instance of {@code ExtendedInteger} + * * @param value to parse * @return instance of {@code ExtendedInteger} or * null in case specified value is null or the value does not contain a parsable integer */ public static ExtendedInteger parseInt(String value) { - //TODO: implement me - return null; + int first = 1; + int k = 0; + int resultSum = 0; + int result = 0; + int j = 0; + int lengthString = value.length(); + if (lengthString == 0) { + return null; + } + if (value.charAt(0) == '-') { + first = -1; + } else { + k = -1; + } + for (int i = lengthString - 1; i != k; i--) { + if (Character.isDigit(value.charAt(i))) { + result = Character.getNumericValue(value.charAt(i)); + result *= Math.pow(10, j++); + } else { + return null; + } + resultSum += result; + } + resultSum *= first; + ExtendedInteger resultInt = new ExtendedInteger(resultSum); + return resultInt; } /** * Get int representation of {@code ExtendedInteger} + * * @return int representation */ public int getValue() { - //TODO: implement me - return 0; + return this.value; } /** * Check whether current value is even + * * @return true if value is even, false - otherwise */ + public boolean isEven() { - //TODO: implement me - return false; + return isEven(value); } /** * Check whether current value is odd + * * @return true if value is odd, false - otherwise */ public boolean isOdd() { - //TODO: implement me - return false; + return isOdd(value); } /** * Check whether current value is prime + * * @return true if value is prime, false - otherwise */ public boolean isPrime() { - //TODO: implement me - return false; + return isPrime(value); } /** * Check whether current {@code ExtendedInteger} is equal to specified int value + * * @return true if values are equal, false - otherwise */ public boolean equals(int value) { - //TODO: implement me - return false; + return this.value == value; } /** * Check whether current {@code ExtendedInteger} is equal to specified object + * * @return true if values are equal, false - otherwise */ @Override public boolean equals(Object obj) { - //TODO: implement me - return false; + if (!((obj) instanceof ExtendedInteger)) { + return false; + } + ExtendedInteger extendedInteger = (ExtendedInteger) obj; + if (obj == null) { + return false; + } + if ((extendedInteger.getValue()) <= 0) { + return false; + } + return true; } } From 88c96762d6c3a32db879847cefa293704cf4a393 Mon Sep 17 00:00:00 2001 From: Igor Afanasenko Date: Mon, 5 Dec 2016 16:00:31 +0200 Subject: [PATCH 2/5] ExtendedeInteger done. --- .../java/extendedinteger/ExtendedInteger.java | 120 +++++++++++++++--- 1 file changed, 99 insertions(+), 21 deletions(-) diff --git a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java index a76f6fe..72d987b 100644 --- a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java +++ b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java @@ -4,116 +4,194 @@ * Integer representation with some additional features */ public class ExtendedInteger { + private int value; public ExtendedInteger(int value) { - //TODO: implement me + this.value = value; } /** * Check whether specified value is even + * * @param value to check * @return true if value is even, false - otherwise */ public static boolean isEven(int value) { - //TODO: implement me + if ((value & 1) == 0) { + return true; + } return false; } /** * Check whether specified value is odd + * * @param value to check * @return true if value is odd, false - otherwise */ public static boolean isOdd(int value) { - //TODO: implement me + if ((value & 1) == 1) { + return true; + } return false; } /** * Check whether specified value is prime + * * @param value to check * @return true if value is prime, false - otherwise */ public static boolean isPrime(int value) { - //TODO: implement me - return false; + if (value <= 1) { + return false; + } else { + for (int i = 2; i < value; i++) { + if (value % i == 0) { + return false; + } + } + } + return true; } /** * Parse specified char array and create instance of {@code ExtendedInteger} + * * @param value to parse * @return instance of {@code ExtendedInteger} or * null in case specified value is null or the value does not contain a parsable integer */ public static ExtendedInteger parseInt(char[] value) { - //TODO: implement me - return null; + + int result = 0; + int resultSum = 0; + int j = 0; + int k = 0; + int first = 1; + int lengthChar = value.length; + if (lengthChar == 0) { + return null; + } + if (value[0] == '-') { + first = -1; + } else { + k = -1; + } + for (int i = lengthChar - 1; i != k; i--) { + if (Character.isDigit(value[i])) { + result = Character.getNumericValue(value[i]); + result *= Math.pow(10, j++); + } else { + return null; + } + resultSum += result; + } + resultSum *= first; + ExtendedInteger resultInt = new ExtendedInteger(resultSum); + return resultInt; } /** * Parse specified string and create instance of {@code ExtendedInteger} + * * @param value to parse * @return instance of {@code ExtendedInteger} or * null in case specified value is null or the value does not contain a parsable integer */ public static ExtendedInteger parseInt(String value) { - //TODO: implement me - return null; + int first = 1; + int k = 0; + int resultSum = 0; + int result = 0; + int j = 0; + int lengthString = value.length(); + if (lengthString == 0) { + return null; + } + if (value.charAt(0) == '-') { + first = -1; + } else { + k = -1; + } + for (int i = lengthString - 1; i != k; i--) { + if (Character.isDigit(value.charAt(i))) { + result = Character.getNumericValue(value.charAt(i)); + result *= Math.pow(10, j++); + } else { + return null; + } + resultSum += result; + } + resultSum *= first; + ExtendedInteger resultInt = new ExtendedInteger(resultSum); + return resultInt; } /** * Get int representation of {@code ExtendedInteger} + * * @return int representation */ public int getValue() { - //TODO: implement me - return 0; + return this.value; } /** * Check whether current value is even + * * @return true if value is even, false - otherwise */ + public boolean isEven() { - //TODO: implement me - return false; + return isEven(value); } /** * Check whether current value is odd + * * @return true if value is odd, false - otherwise */ public boolean isOdd() { - //TODO: implement me - return false; + return isOdd(value); } /** * Check whether current value is prime + * * @return true if value is prime, false - otherwise */ public boolean isPrime() { - //TODO: implement me - return false; + return isPrime(value); } /** * Check whether current {@code ExtendedInteger} is equal to specified int value + * * @return true if values are equal, false - otherwise */ public boolean equals(int value) { - //TODO: implement me - return false; + return this.value == value; } /** * Check whether current {@code ExtendedInteger} is equal to specified object + * * @return true if values are equal, false - otherwise */ @Override public boolean equals(Object obj) { - //TODO: implement me - return false; + if (!((obj) instanceof ExtendedInteger)) { + return false; + } + ExtendedInteger extendedInteger = (ExtendedInteger) obj; + if (obj == null) { + return false; + } + if ((extendedInteger.getValue()) <= 0) { + return false; + } + return true; } } From 38c7209069a37fed40b301bf4f56a70fde82746c Mon Sep 17 00:00:00 2001 From: Igor Afanasenko Date: Thu, 8 Dec 2016 17:33:16 +0200 Subject: [PATCH 3/5] ExtendedeInteger done. --- .../java/extendedinteger/ExtendedInteger.java | 52 +++++++------------ 1 file changed, 18 insertions(+), 34 deletions(-) diff --git a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java index 72d987b..4239a53 100644 --- a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java +++ b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java @@ -64,6 +64,7 @@ public static boolean isPrime(int value) { */ public static ExtendedInteger parseInt(char[] value) { + int result = 0; int resultSum = 0; int j = 0; @@ -75,6 +76,8 @@ public static ExtendedInteger parseInt(char[] value) { } if (value[0] == '-') { first = -1; + } else if (value[0] == '+') { + k = 0; } else { k = -1; } @@ -100,32 +103,9 @@ public static ExtendedInteger parseInt(char[] value) { * null in case specified value is null or the value does not contain a parsable integer */ public static ExtendedInteger parseInt(String value) { - int first = 1; - int k = 0; - int resultSum = 0; - int result = 0; - int j = 0; - int lengthString = value.length(); - if (lengthString == 0) { - return null; - } - if (value.charAt(0) == '-') { - first = -1; - } else { - k = -1; - } - for (int i = lengthString - 1; i != k; i--) { - if (Character.isDigit(value.charAt(i))) { - result = Character.getNumericValue(value.charAt(i)); - result *= Math.pow(10, j++); - } else { - return null; - } - resultSum += result; - } - resultSum *= first; - ExtendedInteger resultInt = new ExtendedInteger(resultSum); - return resultInt; + + char[] newChar = value.toCharArray(); + return parseInt(newChar); } /** @@ -181,17 +161,21 @@ public boolean equals(int value) { */ @Override public boolean equals(Object obj) { - if (!((obj) instanceof ExtendedInteger)) { - return false; - } - ExtendedInteger extendedInteger = (ExtendedInteger) obj; - if (obj == null) { + if (obj == this) + return true; + + if (obj == null) return false; - } - if ((extendedInteger.getValue()) <= 0) { + + if (!(getClass() == obj.getClass())) return false; + else { + ExtendedInteger tmp = (ExtendedInteger) obj; + if (tmp.value == this.value) + return true; + else + return false; } - return true; } } From 0525d8b39596a23d37d3ab51e7271a1350f6eed3 Mon Sep 17 00:00:00 2001 From: Igor Afanasenko Date: Thu, 8 Dec 2016 17:42:12 +0200 Subject: [PATCH 4/5] ExtendedeInteger done. --- .../changerequest/java/extendedinteger/ExtendedInteger.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java index 4239a53..25d2561 100644 --- a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java +++ b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java @@ -64,7 +64,6 @@ public static boolean isPrime(int value) { */ public static ExtendedInteger parseInt(char[] value) { - int result = 0; int resultSum = 0; int j = 0; From f90ff6899e7904350c710bbe381fe623e09d8d44 Mon Sep 17 00:00:00 2001 From: Igor Afanasenko Date: Thu, 8 Dec 2016 17:49:09 +0200 Subject: [PATCH 5/5] ExtendedeInteger done. --- .../changerequest/java/extendedinteger/ExtendedInteger.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java index 25d2561..ca41871 100644 --- a/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java +++ b/src/main/java/school/lemon/changerequest/java/extendedinteger/ExtendedInteger.java @@ -160,6 +160,7 @@ public boolean equals(int value) { */ @Override public boolean equals(Object obj) { + if (obj == this) return true;