-
Notifications
You must be signed in to change notification settings - Fork 6
FINAL Peer Review updated with my code #12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
b3c1256
4bed1f1
8357dfa
244b403
ea70b2d
f0038ab
932c381
f373ec7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,33 +1,116 @@ | ||
| public class StringManipulation implements StringManipulationInterface { | ||
| private String string; | ||
|
|
||
| @Override | ||
| public String getString() { | ||
| return null; | ||
| return string; | ||
| } | ||
|
|
||
| @Override | ||
| public void setString(String string) { | ||
| this.string = string; | ||
| } | ||
|
|
||
| @Override | ||
| /** | ||
| * Counts the number of non-empty words in the string. | ||
| * @return The count of words. | ||
| */ | ||
| public int count() { | ||
| return 0; | ||
| String[] words = string.split(" "); | ||
| int count = 0; | ||
|
|
||
| for (String word : words) { | ||
| if (!word.isEmpty()) { | ||
| count++; | ||
| } | ||
| } | ||
|
|
||
| return count; | ||
| } | ||
|
|
||
| /** | ||
| * Removes the character at the nth position in the string. | ||
| * @param n The position of the character to be removed. | ||
| * @param maintainSpacing Determines whether to maintain spacing when removing characters. | ||
| * @return The string with the nth characters removed. | ||
| */ | ||
| @Override | ||
| public String removeNthCharacter(int n, boolean maintainSpacing) { | ||
| return null; | ||
| } | ||
| if (n <= 0) { | ||
| throw new IllegalArgumentException(); | ||
| } else if (n > string.length()) { | ||
| throw new IndexOutOfBoundsException(); | ||
| } | ||
|
|
||
| @Override | ||
| public String[] getSubStrings(int startWord, int endWord) { | ||
| return null; | ||
| StringBuilder stringBuilder = new StringBuilder(); | ||
|
|
||
| for (int i = 0; i < string.length(); i++) { | ||
| if ((i + 1) % n == 0) { | ||
| if (maintainSpacing) { | ||
| stringBuilder.append(" "); | ||
| } | ||
| } else { | ||
| stringBuilder.append(string.charAt(i)); | ||
| } | ||
| } | ||
puleri marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| return stringBuilder.toString(); | ||
| } | ||
|
|
||
| /** | ||
| * Retrieves a substring of words from the specified startWord to the endWord. | ||
| * @param startWord The starting index of the substring. | ||
| * @param endWord The ending index of the substring. | ||
| * @return An array of substrings. | ||
| */ | ||
| @Override | ||
| public String restoreString(int[] indices) { | ||
| return null; | ||
| public String[] getSubStrings(int startWord, int endWord){ | ||
| if (startWord <= 0 || endWord <= 0 || startWord > endWord) { | ||
| throw new IllegalArgumentException(); | ||
| } | ||
|
|
||
| String[] preFilteredResult = string.split(" "); | ||
| String[] substrings = new String[endWord - startWord + 1]; | ||
| int wordCount = 1; | ||
| int substringsIndex = 0; | ||
|
|
||
| for (String result : preFilteredResult) { | ||
| if (!result.isEmpty()) { | ||
| if (wordCount >= startWord && wordCount <= endWord) { | ||
| substrings[substringsIndex] = result; | ||
| substringsIndex++; | ||
| } | ||
| wordCount++; | ||
| } | ||
| } | ||
puleri marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| if (wordCount < endWord) { | ||
| throw new IndexOutOfBoundsException(); | ||
| } | ||
|
|
||
| return substrings; | ||
| } | ||
|
|
||
| /** | ||
| * Restores the characters from the given indices to form a string. | ||
| * @param indices The indices of the characters to be restored. | ||
| * @return The restored string. | ||
| */ | ||
| @Override | ||
| public String restoreString(int[] indices){ | ||
| if (indices.length != string.length()) { | ||
| throw new IllegalArgumentException(); | ||
| } | ||
|
|
||
| String[] restoredStringArray = new String[indices.length]; | ||
|
|
||
| for (int i = 0; i < indices.length; i++) { | ||
| int oldIndex = indices[i]; | ||
| if (oldIndex < 0 || oldIndex >= string.length()) { | ||
| throw new IndexOutOfBoundsException(); | ||
| } | ||
| restoredStringArray[i] = String.valueOf(string.charAt(oldIndex)); | ||
| } | ||
|
|
||
| return String.join("", restoredStringArray); | ||
|
Comment on lines
+103
to
+113
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Your restoreString() basically has the same logic as mine and there is nothing wrong with your code:) |
||
| } | ||
|
|
||
| } | ||
Uh oh!
There was an error while loading. Please reload this page.