diff --git a/pom.xml b/pom.xml index b029312..a041044 100644 --- a/pom.xml +++ b/pom.xml @@ -14,8 +14,8 @@ maven-compiler-plugin 3.8.0 - 1.8 - 1.8 + 9 + 9 diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java index ef714b5..becd11b 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java @@ -9,7 +9,7 @@ public class BasicArrayUtils { * @return the first element in the array */ public static String getFirstElement(String[] stringArray) { - return null; + return stringArray[0]; } /** @@ -17,7 +17,7 @@ public static String getFirstElement(String[] stringArray) { * @return the second element in the array */ public static String getSecondElement(String[] stringArray) { - return null; + return stringArray[1]; } /** @@ -25,7 +25,7 @@ public static String getSecondElement(String[] stringArray) { * @return the last element in the array */ public static String getLastElement(String[] stringArray) { - return null; + return stringArray[stringArray.length - 1]; } /** @@ -33,6 +33,6 @@ public static String getLastElement(String[] stringArray) { * @return the second to last element in the array */ public static String getSecondToLastElement(String[] stringArray) { - return null; + return stringArray[stringArray.length - 2]; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java index ca13f2d..8f86e89 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java @@ -9,7 +9,8 @@ public class BasicStringUtils { * @return string with identical content, and the first character capitalized */ public static String camelCase(String str) { - return null; + return str.substring(0, 1).toUpperCase() + + str.substring(1).toLowerCase(); } /** @@ -17,7 +18,11 @@ public static String camelCase(String str) { * @return string with identical contents, in the reverse order */ public static String reverse(String str) { - return null; + StringBuilder stringBuilder = new StringBuilder(str); + + + + return stringBuilder.reverse().toString(); } /** @@ -25,7 +30,14 @@ public static String reverse(String str) { * @return string with identical contents, in reverse order, with first character capitalized */ public static String reverseThenCamelCase(String str) { - return null; + StringBuilder stringBuilder = new StringBuilder(str); + stringBuilder.reverse(); + + + + + + return BasicStringUtils.camelCase(stringBuilder.toString()); } @@ -34,7 +46,13 @@ public static String reverseThenCamelCase(String str) { * @return string with identical contents excluding first and last character */ public static String removeFirstAndLastCharacter(String str) { - return null; + + StringBuilder stringBuilder = new StringBuilder(str); + int i = str.length() - 1; + + stringBuilder.deleteCharAt(i); + stringBuilder.deleteCharAt(0); + return stringBuilder.toString(); } /** @@ -42,6 +60,19 @@ public static String removeFirstAndLastCharacter(String str) { * @return string with identical characters, each with opposite casing */ public static String invertCasing(String str) { - return null; + char[] chars = str.toCharArray(); + for (int i = 0; i < chars.length; i++) + { + char c = chars[i]; + if (Character.isUpperCase(c)) + { + chars[i] = Character.toLowerCase(c); + } + else if (Character.isLowerCase(c)) + { + chars[i] = Character.toUpperCase(c); + } + } + return new String(chars); } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java index 68d82ec..2ef3f82 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java @@ -9,7 +9,14 @@ public class IntegerArrayUtils { * @return the sum of `intArray` */ public static Integer getSum(Integer[] intArray) { - return null; + Integer sum = 0; + + for(int i = 0; i < intArray.length; i++){ + sum += intArray[i]; + } + + + return sum; } /** @@ -17,7 +24,15 @@ public static Integer getSum(Integer[] intArray) { * @return the product of `intArray` */ public static Integer getProduct(Integer[] intArray) { - return null; + + Integer product = 1; + + for(int i = 0; i < intArray.length; i++){ + product *= intArray[i]; + } + + + return product; } /** @@ -25,6 +40,12 @@ public static Integer getProduct(Integer[] intArray) { * @return the sum of `intArray` divided by number of elements in `intArray` */ public static Double getAverage(Integer[] intArray) { - return null; + Double sum = 0.0; + + for (int i = 0; i < intArray.length; i++){ + sum += intArray[i]; + } + return sum / intArray.length; + } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java index eccbb6c..a689b71 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java @@ -11,7 +11,15 @@ public class IntegerUtils { * @return the sum of all integers between 0 and not including `n` */ public static Integer getSumOfN(Integer n) { - return null; + int sum =0; + + int i =1; + + while (i <= n){ + sum = sum + i; + i++; + } + return sum; } /** @@ -19,7 +27,15 @@ public static Integer getSumOfN(Integer n) { * @return the product of all integers between 0 and not including `n` */ public static Integer getProductOfN(Integer n) { - return null; + int sum =1; + + int i =1; + + while (i <= n){ + sum = sum * i; + i++; + } + return sum; } /** @@ -27,6 +43,16 @@ public static Integer getProductOfN(Integer n) { * @return integer with identical digits in the reverse order */ public static Integer reverseDigits(Integer val) { - return null; + + int toBeReversed = 0; + + int remainder; + + while (val > 0){ + remainder = val % 10; + toBeReversed = (toBeReversed * 10) + remainder; + val = val / 10; + } + return toBeReversed; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java index 9495445..4cb5256 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java @@ -1,5 +1,8 @@ package com.zipcodewilmington.assessment1.part1; +import java.awt.print.Paper; +import java.util.Objects; + /** * Created by leon on 2/16/18. */ @@ -13,7 +16,16 @@ public class RockPaperSissorsEvaluator { * @return the respective winning move */ public String getWinningMove(String handSign) { - return null; + + if (handSign.equals(ROCK)){ + return PAPER; + } else if (handSign.equals(PAPER)) { + return SCISSOR; + + } else if (handSign.equals(SCISSOR)) { + return ROCK; + } + return handSign; } /** @@ -21,15 +33,35 @@ public String getWinningMove(String handSign) { * @return the respective losing move */ public String getLosingMove(String handSign) { - return null; + + if (handSign.equals(PAPER)){ + return ROCK; + } else if (handSign.equals(SCISSOR)) { + return PAPER; + + } else if (handSign.equals(ROCK)) { + return SCISSOR; + } + return handSign; } + /** * @param handSignOfPlayer1 a string representative of a hand sign of a player * @param handSignOfPlayer2 a string representative of a hand sign of a challenger * @return a string representative of the winning hand sign between the two players */ public String getWinner(String handSignOfPlayer1, String handSignOfPlayer2) { - return null; + RockPaperSissorsEvaluator rps = new RockPaperSissorsEvaluator(); + + if(handSignOfPlayer2.equals(ROCK)) { + handSignOfPlayer1 = PAPER; + } else if (handSignOfPlayer2.equals(PAPER)) { + handSignOfPlayer1 = SCISSOR; + }else if (handSignOfPlayer2.equals(SCISSOR)) { + handSignOfPlayer1 = ROCK; + } + return handSignOfPlayer1; +} } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java index bb9995a..a9c1e28 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java @@ -1,5 +1,12 @@ package com.zipcodewilmington.assessment1.part2; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Map; +import java.util.stream.Stream; + /** * Created by leon on 2/16/18. */ @@ -11,9 +18,16 @@ public class ArrayUtils { * Given an array of objects, named `objectArray`, and an object `objectToCount`, return the number of times the `objectToCount` appears in the `objectArray` */ public static Integer getNumberOfOccurrences(Object[] objectArray, Object objectToCount) { - return null; + int counter = 0; + + for (Object o : objectArray) + if (objectToCount == o) + counter++; + + return counter; } + /** * @param objectArray an array of any type of Object * @param objectToRemove a value to be removed from the `objectArray` @@ -21,9 +35,12 @@ public static Integer getNumberOfOccurrences(Object[] objectArray, Object object * Given an array of objects, name `objectArray`, and an object `objectToRemove`, return an array of objects with identical contents excluding `objectToRemove` */ public static Object[] removeValue(Object[] objectArray, Object objectToRemove) { - return null; + + + return null; } + /** * @param objectArray an array of any type of Object * @return the most frequently occurring object in the array @@ -50,6 +67,23 @@ public static Object getLeastCommon(Object[] objectArray) { * given two arrays `objectArray` and `objectArrayToAdd`, return an array containing all elements in `objectArray` and `objectArrayToAdd` */ public static Object[] mergeArrays(Object[] objectArray, Object[] objectArrayToAdd) { + +// int length = objectArray.length + objectArrayToAdd.length; +// Object[] mergedArray = new Object[length]; +// int position = 0; +// +// for (Object element : objectArray) { +// mergedArray[position] = element; +// position++; +// } +// +// for (Object element : objectArrayToAdd) { +// mergedArray[position] = element; +// position++; +// +// } +// return mergedArray; return null; } } + diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java b/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java index a348b0d..cb0f146 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java @@ -1,5 +1,9 @@ package com.zipcodewilmington.assessment1.part2; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Scanner; + /** * Created by leon on 2/16/18. */ @@ -10,7 +14,24 @@ public class MultiplesDeleter { * given an array of integers, named `ints` return an identical array with evens removed */ public Integer[] deleteEvens(Integer[] ints) { - return null; + int countOdd = 0; + + for (int i : ints) { + if (!(i % 2 == 0)) + ++countOdd; + } + Integer[] odd = new Integer[countOdd]; + + int i = 0; + for (int num : ints) { + if (!(num % 2 == 0)) { + + odd[i++] = num; + } + + + } + return odd; } /** @@ -19,7 +40,24 @@ public Integer[] deleteEvens(Integer[] ints) { * given an array of integers, named `ints` return an identical array with odds removed */ public Integer[] deleteOdds(Integer[] ints) { - return null; + int countEven = 0; + + for (int i : ints) { + if (!(i % 2 == 0)) + ++countEven; + } + Integer[] even = new Integer[countEven]; + + int i = 0; + for (int num : ints) { + if (num % 2 == 0) { + + even[i++] = num; + } + + + } + return even; } /** @@ -28,16 +66,32 @@ public Integer[] deleteOdds(Integer[] ints) { * given an array of integers, named `ints` return an identical array with numbers indivisible by 3 removed */ public Integer[] deleteMultiplesOf3(Integer[] ints) { - return null; + int multiple = 0; + + for (int i : ints) { + if (!(i % 3 == 0)) + multiple++; + } + Integer[] ofThree = new Integer[multiple]; + int i = 0; + for (int num : ints) { + if (num % 3 != 0) { + + ofThree[i++] = num; + } + + + } + return ofThree; } /** - * @param ints array of Integer objects + * @param ints array of Integer objects * @param multiple the multiple to evaluate divisibility against * @return all ints which are not divisible by the `multiple` specified * given an array of integers, named `ints` return an identical array with numbers indivisible by `multiple` removed */ public Integer[] deleteMultiplesOfN(Integer[] ints, int multiple) { - return null; + return null; } -} +} \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java index fc403e5..2252d72 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java @@ -1,5 +1,10 @@ package com.zipcodewilmington.assessment1.part2; +import com.zipcodewilmington.assessment1.part1.BasicStringUtils; + +import java.text.BreakIterator; +import java.util.ArrayList; + /** * Created by leon on 2/16/18. */ @@ -11,7 +16,22 @@ public class StringUtils { * given a string containing words delimited by spaces, representative of a sentence, return an array of strings, each element representative of a respective word in the sentence */ public static String[] getWords(String sentence) { - return null; + ArrayList words = new ArrayList<>(); + + BreakIterator breakIterator = BreakIterator.getWordInstance(); + breakIterator.setText(sentence); + + int lastIndex = breakIterator.first(); + + while (BreakIterator.DONE != lastIndex) { + int firstIndex = lastIndex; + lastIndex = breakIterator.next(); + if (lastIndex != BreakIterator.DONE && Character.isLetterOrDigit(sentence.charAt(firstIndex))) { + words.add(sentence.substring(firstIndex, lastIndex)); + } + } + + return words.toArray(new String[0]); } @@ -21,7 +41,8 @@ public static String[] getWords(String sentence) { * given a string containing words delimited by spaces, representative of a sentence, return the first word of the sentence */ public static String getFirstWord(String sentence) { - return null; + + return sentence.substring(0, sentence.indexOf(' ')); } /** @@ -30,7 +51,7 @@ public static String getFirstWord(String sentence) { * given a string containing words delimited by spaces, representative of a sentence, return the first word with identical contents in reverse order */ public static String reverseFirstWord(String sentence) { - return null; + return BasicStringUtils.reverse(sentence.substring(0, sentence.indexOf(' '))); } /** @@ -39,7 +60,12 @@ public static String reverseFirstWord(String sentence) { * given a string containing words delimited by spaces, representative of a sentence, return the first word with identical contents in reverse order with the first character capitalized */ public static String reverseFirstWordThenCamelCase(String sentence) { - return null; + StringBuilder stringBuilder = new StringBuilder(sentence); + + String reverse = BasicStringUtils.reverse(stringBuilder.substring(0,sentence.indexOf(' '))); + + + return BasicStringUtils.camelCase(reverse); } @@ -50,7 +76,12 @@ public static String reverseFirstWordThenCamelCase(String sentence) { * given a string and index, return an identical string excluding the character at the specified index */ public static String removeCharacterAtIndex(String str, int index) { - return null; + StringBuilder stringBuilder = new StringBuilder(str); + index = str.length() / index - 1; + + stringBuilder.deleteCharAt(index); + + return stringBuilder.toString() ; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java index e731b77..a121131 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java @@ -9,22 +9,24 @@ public class Cat extends Pet { * @param age age of this Cat */ public Cat(String name, Integer age) { - + age = 0; + name = ""; } /** * @param age age of this Cat */ public Cat(Integer age) { - } + age = 0;} /** * @param name name of this Cat */ public Cat(String name) { - +name = ""; } + /** * nullary constructor * by default, a Cat's @@ -32,12 +34,14 @@ public Cat(String name) { * age is 0 */ public Cat() { + super(); } /** * @return meow as a string */ public String speak() { - return null; + return "Meow"; } + } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java index 0c775fd..05956f0 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java @@ -38,6 +38,6 @@ public Dog() { * @return bark as a string */ public String speak() { - return null; + return "Bark"; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java index 3c925da..3cbc6d2 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java @@ -8,6 +8,12 @@ public abstract class Pet implements Animal { * nullary constructor * by default, pet has age of 0; name of ""; */ + + private String name; + private Integer age; + private PetOwner petOwner; + + public Pet() { } @@ -22,7 +28,7 @@ public Pet(String name) { * @param age age of this pet */ public Pet(int age) { - } + age = getAge();} /** * @param name name of this pet @@ -35,14 +41,14 @@ public Pet(String name, int age) { * @return name of this pet */ public String getName() { - return null; + return this.name; } /** * @return age of this pet */ public Integer getAge() { - return null; + return this.age; } /** @@ -56,6 +62,22 @@ public void setOwner(PetOwner newPetOwner) { * @return PetOwner object whose composite `pets` collection contains this Pet instance */ public PetOwner getOwner() { - return null; + return this.petOwner ; + } + + public void setName(String name) { + this.name = name; + } + + public void setAge(Integer age) { + this.age = age; + } + + public PetOwner getPetOwner() { + return petOwner; + } + + public void setPetOwner(PetOwner petOwner) { + this.petOwner = petOwner; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java b/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java index 7bbf2ab..4ec71d3 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java @@ -9,12 +9,15 @@ public class PetOwner { * @param pets array of Pet object */ public PetOwner(String name, Pet... pets) { + name = this.getName(); + pets = getPets(); } /** * @param pet pet to be added to the composite collection of Pets */ public void addPet(Pet pet) { + pet.setOwner(pet.getOwner()); } /**