From dbca1248e5296118d8fcf9e76bfcea440de64b0f Mon Sep 17 00:00:00 2001 From: David Trombello Date: Mon, 9 Dec 2019 23:47:33 -0500 Subject: [PATCH 1/4] most tests passing --- .../zipcode/quiz4/arrays/ArrayUtils.java | 22 ++++- .../quiz4/collections/WordCounter.java | 3 + .../quiz4/collections/culonary/Curry.java | 2 +- .../quiz4/collections/culonary/Ginger.java | 2 +- .../quiz4/collections/culonary/Pepper.java | 2 +- .../quiz4/fundamentals/Calculator.java | 23 +++-- .../quiz4/fundamentals/StringUtils.java | 91 +++++++++++++++++-- .../objectorientation/account/Account.java | 13 ++- .../quiz4/objectorientation/account/Bank.java | 14 ++- .../account/BankAccount.java | 39 +++++++- .../objectorientation/account/Employee.java | 82 ++++++++++++++++- .../objectorientation/account/Worker.java | 2 + 12 files changed, 267 insertions(+), 28 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index 6deaf61..8ee93ab 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -1,22 +1,36 @@ package rocks.zipcode.quiz4.arrays; +import java.util.ArrayList; +import java.util.Arrays; + /** * @author leon on 01/01/2019. */ public class ArrayUtils { public static String getMiddleElement(String[] values) { - return null; + Integer midIndex = values.length / 2; + return values[midIndex]; } public static String[] removeMiddleElement(String[] values) { - return null; + ArrayList valuesList= new ArrayList<>(Arrays.asList(values)); + valuesList.remove((values.length)/2); + String [] result = new String[valuesList.size()]; + result = valuesList.toArray(result); + return result; } public static String getLastElement(String[] values) { - return null; + Integer lastIndex = values.length -1; + return values[lastIndex]; } public static String[] removeLastElement(String[] values) { - return null; + ArrayList valuesList = new ArrayList<>(Arrays.asList(values)); + //Integer lastIndex = values.length -1; + valuesList.remove(values.length - 1); + String [] result = new String[valuesList.size()]; + result = valuesList.toArray(result); + return result; } } \ No newline at end of file diff --git a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java index 2bf5ec2..834b7dc 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -3,10 +3,13 @@ import java.util.Map; public class WordCounter { + String [] strings; + public WordCounter(String... strings) { } public Map getWordCountMap() { + strings.split(" ") return null; } } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java index 199cefc..96ce563 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java @@ -1,4 +1,4 @@ package rocks.zipcode.quiz4.collections.culonary; -public class Curry { +public class Curry implements Spice{ } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java index 3c4e177..ef695be 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java @@ -3,5 +3,5 @@ /** * @author leon on 27/12/2018. */ -public class Ginger { +public class Ginger implements Spice{ } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java index 4b771a8..248859f 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java @@ -3,5 +3,5 @@ /** * @author leon on 27/12/2018. */ -public class Pepper { +public class Pepper implements Spice{ } diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java index 02f2618..9660f04 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java @@ -4,32 +4,41 @@ * @author leon on 21/12/2018. */ public class Calculator { + public static Double squareRoot(Double value) { - return null; + return Math.sqrt(value); } public static Double square(Double value) { - return null; + return value*value; } public static Double[] squareRoots(Double... value) { - return null; + Double [] valueRoots = new Double[value.length]; + for (int i = 0; i < valueRoots.length; i++) { + valueRoots[i] = Math.sqrt(value[i]); + } + return valueRoots; } public static Double[] squares(Double... values) { - return null; + Double [] valueRoots = new Double[values.length]; + for (int i = 0; i < valueRoots.length; i++) { + valueRoots[i] = values[i] * values[i]; + } + return valueRoots; } public static Double add(Double value1, Double value2) { - return null; + return value1 + value2; } public static Double subtract(Double value1, Double value2) { - return null; + return value1 - value2; } public static Double divide(Double divisor, Double dividend) { - return null; + return divisor / dividend; } } diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java index 5ec61be..0458b27 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -1,34 +1,113 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; + /** * @author leon on 21/12/2018. */ public class StringUtils { public static Character getMiddleCharacter(String string) { - return null; + char [] strArray = string.toCharArray(); + return strArray[(string.length())/2]; } public static String capitalizeMiddleCharacter(String str) { - return null; + String [] strArray = str.split(""); + Integer midIndex = str.length()/2; + strArray[midIndex] = strArray[midIndex].toUpperCase(); + return String.join("", strArray); + //Or using a stream: String joined = Arrays.stream(strArray).collect(Collectors.joining()); } public static String lowerCaseMiddleCharacter(String str) { - return null; + String [] strArray = str.split(""); + Integer midIndex = str.length()/2; + strArray[midIndex] = strArray[midIndex].toLowerCase(); + String joined = Arrays.stream(strArray).collect(Collectors.joining()); + return joined; } public static Boolean isIsogram(String str) { - return null; + Map charMap = new HashMap<>(); + char [] strArray = str.toCharArray(); + Character [] nonPrimitiveArray = new Character[strArray.length]; + for (int i = 0; i < nonPrimitiveArray.length; i++) { + nonPrimitiveArray[i] = (Character) strArray[i]; + } + charMap = Arrays.stream(nonPrimitiveArray).collect(Collectors.groupingBy(c -> c, Collectors.counting())); + for (Long count : charMap.values()) { + if (count >= 2) { + return false; + } + } + return true; } public static Boolean hasDuplicateConsecutiveCharacters(String str) { + String[] strArray = str.split(""); + for (int i = str.length()-1; i >=1; i--) { + if (strArray[i].equals(strArray[i - 1])) { + return true; + } + return false; + } +// +// //char [] strArray = str.toCharArray(); +// Character [] nonPrimitiveArray = new Character[strArray.length]; +// for (int i = 0; i < nonPrimitiveArray.length; i++) { +// nonPrimitiveArray[i] = (Character) strArray[i]; +// } +// //Arrays.stream(nonPrimitiveArray).filter(x -> x.equals) +// +// char[] chars = str.toCharArray(); +// StringBuilder sb = new StringBuilder(); +// boolean repeatedChar = false; +// for (int i = 0; i < chars.length; i++) { +// repeatedChar = false; +// for (int j = i + 1; j < chars.length; j++) { +// if (chars[i] == chars[j]) { +// repeatedChar = true; +// break; +// } +// } +// } return null; } public static String removeConsecutiveDuplicateCharacters(String str) { - return null; + StringBuilder sb = new StringBuilder(); + String[] strArray = str.split(""); + for (int i = 0; i < strArray.length - 1; i++) { + if (!strArray[i].equals(strArray[i + 1])) { + sb.append(strArray[i]); + } + else { + continue; + } + } + return sb.toString(); } + public static String invertCasing(String str) { - return null; + StringBuilder sb = new StringBuilder(str); + char c; + + for (int i = 0; i < str.length(); i++) { + c = str.charAt(i); + if (Character.isLowerCase(c)) + { + sb.replace(i, i + 1, String.valueOf(Character.toUpperCase(c))); + } + else + { + sb.replace(i, i + 1, String.valueOf(Character.toLowerCase(c))); + } + } + return sb.toString(); } } \ No newline at end of file diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java index 40eb4a8..7d0c98f 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java @@ -3,11 +3,20 @@ /** * @author leon on 30/12/2018. */ -public class Account extends BankAccount { +public class Account { + Long id; + + public Account () {} + + public Account(Long id) { + this.id = id; + } + public Long getId() { - return null; + return id; } public void setId(Long id) { + this.id = id; } } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java index 0dd4183..df7151b 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java @@ -1,17 +1,25 @@ package rocks.zipcode.quiz4.objectorientation.account; +import java.util.ArrayList; + /** * @author leon on 27/12/2018. */ public class Bank { - public BankAccount removeBankAccountByIndex(Integer indexNumber) { - return null; + ArrayList accountArrayList = new ArrayList<>(0); + + public BankAccount removeBankAccountByIndex(Integer indexNumber) { //returns BankAccount + BankAccount accountToRemove = accountArrayList.get(indexNumber); + this.accountArrayList.remove(accountToRemove); + return accountToRemove; } public void addBankAccount(BankAccount bankAccount) { + accountArrayList.add(bankAccount); } public Boolean containsBankAccount(BankAccount bankAccount) { - throw new UnsupportedOperationException("Method not yet implemented"); + //throw new UnsupportedOperationException("Method not yet implemented"); + return this.accountArrayList.contains(bankAccount); } } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java index 70ccb74..a4f053e 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java @@ -3,7 +3,44 @@ /** * @author leon on 27/12/2018. */ -public class BankAccount { +public class BankAccount extends Account implements Transactable { + Double balance; + + public BankAccount () { + this.balance = 0.0; + } + + public BankAccount(Double balance) { + this.balance = balance; + } + public void setBalance(Double val) { + this.balance = val; + } + + @Override + public void deposit(Double amountToIncreaseBy) throws IllegalArgumentException { + if (amountToIncreaseBy >= 0) { + balance = this.getBalance(); + balance += amountToIncreaseBy; + setBalance(balance); + } + else throw new IllegalArgumentException(); + } + + @Override + public void withdrawal(Double amountToDecreaseBy) throws IllegalArgumentException{ + balance = this.getBalance(); + if (amountToDecreaseBy > balance || amountToDecreaseBy < 0) { + throw new IllegalArgumentException(); + } + else { + balance -= amountToDecreaseBy; + this.setBalance(balance); + } + } + + public Double getBalance() { + return balance; } } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java index 8407f1a..6d8344a 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java @@ -3,18 +3,96 @@ /** * @author leon on 30/12/2018. */ -public class Employee { +public class Employee implements Worker, Transactable { + BankAccount bankAccount; + Double hourlyWage; + Double moneyEarned; + Double hoursWorked; + Double balance; + Double bankAccountBalance; + + public Employee() { + hourlyWage = 35.0; + hoursWorked = 0.0; + balance = 0.0; + bankAccountBalance = 0.0; + bankAccount = new BankAccount(); } public Employee(BankAccount bankAccount) { + this.bankAccount = bankAccount; + hourlyWage = 35.0; + hoursWorked = 0.0; + balance = 0.0; + bankAccountBalance = 0.0; } public BankAccount getBankAccount() { - return null; + //this.bankAccount.getBalance(); + return bankAccount; } public void setBankAccount(BankAccount bankAccount) { + this.bankAccount = bankAccount; + } + + public Employee(BankAccount bankAccount, Double hourlyWage, Double hoursWorked, Double moneyEarned, Double balance) { + this.bankAccount = bankAccount; + this.hourlyWage = hourlyWage; + this.hoursWorked = hoursWorked; + this.moneyEarned = moneyEarned; + this.balance = balance; + } + + @Override + public void deposit(Double amountToIncreaseBy) throws IllegalArgumentException{ + if (amountToIncreaseBy <= 0) { + throw new IllegalArgumentException (); + } + else { + balance = this.bankAccount.getBalance(); + balance += amountToIncreaseBy; + bankAccount.setBalance(balance); + } + } + + @Override + public void withdrawal(Double amountToDecreaseBy) throws IllegalArgumentException{ + balance = this.bankAccount.getBalance(); + System.out.println(balance); + if (amountToDecreaseBy > balance || amountToDecreaseBy < 0) { + throw new IllegalArgumentException(); + } + else { + balance -= amountToDecreaseBy; + System.out.println(balance); + bankAccount.setBalance(balance); + } + } + + @Override + public Double getBalance() { + return this.bankAccount.getBalance(); + } + + @Override + public void increaseHoursWorked(Double numberOfHours) { + this.hoursWorked += numberOfHours; + } + + @Override + public Double getHoursWorked() { + return hoursWorked; + } + + @Override + public Double getHourlyWage() { + return hourlyWage; + } + @Override + public Double getMoneyEarned() { + return moneyEarned; } } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Worker.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Worker.java index 0f05f7e..1611283 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Worker.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Worker.java @@ -8,4 +8,6 @@ public interface Worker { Double getHoursWorked(); Double getHourlyWage(); Double getMoneyEarned(); + BankAccount getBankAccount(); + void setBankAccount (BankAccount bankAccount); } From 4df0e18c1bd0799dead90379ef88b60fe910764b Mon Sep 17 00:00:00 2001 From: David Trombello Date: Mon, 9 Dec 2019 23:57:01 -0500 Subject: [PATCH 2/4] more tests pass --- .../quiz4/collections/WordCounter.java | 1 - .../quiz4/fundamentals/StringUtils.java | 39 +++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java index 834b7dc..599c8b7 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -9,7 +9,6 @@ public WordCounter(String... strings) { } public Map getWordCountMap() { - strings.split(" ") return null; } } diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java index 0458b27..48696f8 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -48,6 +48,12 @@ public static Boolean isIsogram(String str) { } public static Boolean hasDuplicateConsecutiveCharacters(String str) { + + + + + + String[] strArray = str.split(""); for (int i = str.length()-1; i >=1; i--) { if (strArray[i].equals(strArray[i - 1])) { @@ -79,17 +85,36 @@ public static Boolean hasDuplicateConsecutiveCharacters(String str) { } public static String removeConsecutiveDuplicateCharacters(String str) { + String [] strArray = str.split (""); + int j=0; StringBuilder sb = new StringBuilder(); - String[] strArray = str.split(""); - for (int i = 0; i < strArray.length - 1; i++) { - if (!strArray[i].equals(strArray[i + 1])) { - sb.append(strArray[i]); - } - else { - continue; + for (int i = 1; i< strArray.length; i++) { + + if (strArray[j] != strArray[i]) + { + j++; + strArray[j] = strArray[i]; } } + String[] copy = Arrays.copyOfRange(strArray, 0, j+1); + for (int i = 0; i < copy.length; i++) { + sb.append(copy[i]); + } return sb.toString(); + + + +// StringBuilder sb = new StringBuilder(); +// String[] strArray = str.split(""); +// for (int i = 0; i < strArray.length - 1; i++) { +// if (!strArray[i].equals(strArray[i + 1])) { +// sb.append(strArray[i]); +// } +// else { +// continue; +// } +// } +// return sb.toString(); } From 573ca72928e29a1aa6862c31394202c30e538767 Mon Sep 17 00:00:00 2001 From: David Trombello Date: Tue, 10 Dec 2019 11:18:40 -0500 Subject: [PATCH 3/4] more tests pass --- .../quiz4/collections/WordCounter.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java index 599c8b7..cf90e68 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -1,14 +1,27 @@ package rocks.zipcode.quiz4.collections; +import java.util.Arrays; +import java.util.HashMap; import java.util.Map; +import java.util.stream.Collector; +import java.util.stream.Collectors; public class WordCounter { - String [] strings; + //String [] strings; + Map wordCounts = new HashMap<>(); + Map newMap = new HashMap<>(); public WordCounter(String... strings) { + wordCounts = + Arrays.stream(strings).collect(Collectors.groupingBy(w -> w, Collectors.counting())); + newMap = wordCounts.entrySet() + .stream() + .collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue().intValue())); } - public Map getWordCountMap() { - return null; + //Write method for using a loop also. + + public Map getWordCountMap(String... strings) { + return newMap; } } From b86e971fc5a0ccf8d5027a755544db3ce6ed8da4 Mon Sep 17 00:00:00 2001 From: David Trombello Date: Sun, 15 Dec 2019 18:29:02 -0500 Subject: [PATCH 4/4] all tests passing --- .../quiz4/collections/WordCounter.java | 9 ++- .../quiz4/collections/culonary/Food.java | 36 ++++++++- .../quiz4/fundamentals/StringUtils.java | 79 ++++++------------- .../objectorientation/account/Employee.java | 2 +- 4 files changed, 64 insertions(+), 62 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java index cf90e68..290b44a 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -7,7 +7,7 @@ import java.util.stream.Collectors; public class WordCounter { - //String [] strings; + Map wordCounts = new HashMap<>(); Map newMap = new HashMap<>(); @@ -20,6 +20,13 @@ public WordCounter(String... strings) { } //Write method for using a loop also. +// HashMap frequencymap = new HashMap(); +// foreach(String a in animals) { +// if(frequencymap.containsKey(a)) { +// frequencymap.put(a, frequencymap.get(a)+1); +// } +// else{ frequencymap.put(a, 1); } +// } public Map getWordCountMap(String... strings) { return newMap; diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java index e06abbc..f414815 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java @@ -1,20 +1,48 @@ package rocks.zipcode.quiz4.collections.culonary; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @author leon on 27/12/2018. */ public class Food { + List mySpices = new ArrayList<>(); + Set spicesSet; + + public List getAllSpices() { - return null; + return mySpices; } public > Map getSpiceCount() { - return null; + //Map spiceMap = mySpices.stream().collect(Collectors.toMap((Spice)Collectors.groupingBy(Function.identity()), Collectors.counting())); + + Map spiceMap = new HashMap<>(); + for (Spice spice: mySpices) { + SpiceType spiceType = (SpiceType) spice.getClass(); + if(spiceMap.containsKey(spiceType)){ + spiceMap.put(spiceType, spiceMap.get(spiceType) + 1); + } + else { + spiceMap.put(spiceType, 1); + } + } + return spiceMap; } + // HashMap frequencymap = new HashMap(); +// foreach(String a in animals) { +// if(frequencymap.containsKey(a)) { +// frequencymap.put(a, frequencymap.get(a)+1); +// } +// else{ frequencymap.put(a, 1); } +// } + + public void applySpice(Spice spice) { + mySpices.add(spice); + //spicesSet = new HashSet(mySpices); } } diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java index 48696f8..b0b5c1c 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -50,71 +50,38 @@ public static Boolean isIsogram(String str) { public static Boolean hasDuplicateConsecutiveCharacters(String str) { - - - - String[] strArray = str.split(""); - for (int i = str.length()-1; i >=1; i--) { - if (strArray[i].equals(strArray[i - 1])) { + + if (strArray[str.length() -1].equals(str.length() - 2)){ + return true; + } + for (int i = 0; i < str.length() - 2; i++) { + if (strArray[i].equals(strArray[i + 1])) { return true; } + } return false; } -// -// //char [] strArray = str.toCharArray(); -// Character [] nonPrimitiveArray = new Character[strArray.length]; -// for (int i = 0; i < nonPrimitiveArray.length; i++) { -// nonPrimitiveArray[i] = (Character) strArray[i]; -// } -// //Arrays.stream(nonPrimitiveArray).filter(x -> x.equals) -// -// char[] chars = str.toCharArray(); -// StringBuilder sb = new StringBuilder(); -// boolean repeatedChar = false; -// for (int i = 0; i < chars.length; i++) { -// repeatedChar = false; -// for (int j = i + 1; j < chars.length; j++) { -// if (chars[i] == chars[j]) { -// repeatedChar = true; -// break; -// } -// } -// } - return null; - } - public static String removeConsecutiveDuplicateCharacters(String str) { - String [] strArray = str.split (""); - int j=0; - StringBuilder sb = new StringBuilder(); - for (int i = 1; i< strArray.length; i++) { - if (strArray[j] != strArray[i]) - { - j++; - strArray[j] = strArray[i]; + public static String removeConsecutiveDuplicateCharacters(String str) { + if(hasDuplicateConsecutiveCharacters(str)==true){ + + String[] strArray = str.split(""); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < str.length() - 2; i++) { + if (strArray[i].equals(strArray[i + 1])) { + i=i+1; + } else if (!strArray[i].equals(strArray[i + 1])) { + sb.append(strArray[i]); + } } + if (!strArray[str.length() - 1].equals(str.length() - 2)) { + sb.append(strArray[str.length() - 1]); + } + return sb.toString(); } - String[] copy = Arrays.copyOfRange(strArray, 0, j+1); - for (int i = 0; i < copy.length; i++) { - sb.append(copy[i]); - } - return sb.toString(); - - - -// StringBuilder sb = new StringBuilder(); -// String[] strArray = str.split(""); -// for (int i = 0; i < strArray.length - 1; i++) { -// if (!strArray[i].equals(strArray[i + 1])) { -// sb.append(strArray[i]); -// } -// else { -// continue; -// } -// } -// return sb.toString(); + else { return str;} } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java index 6d8344a..7ab125c 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java @@ -47,7 +47,7 @@ public Employee(BankAccount bankAccount, Double hourlyWage, Double hoursWorked, @Override public void deposit(Double amountToIncreaseBy) throws IllegalArgumentException{ - if (amountToIncreaseBy <= 0) { + if (amountToIncreaseBy < 0) { throw new IllegalArgumentException (); } else {