Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 101 additions & 6 deletions src/main/java/StringManipulation.java
Original file line number Diff line number Diff line change
@@ -1,33 +1,128 @@
public class StringManipulation implements StringManipulationInterface {

private String _string;

@Override
public String getString() {
return null;
return _string;
}

@Override
public void setString(String string) {
_string = string;
}

@Override
public int count() {
return 0;

String string = getString();

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To make sure that if there's an empty sting it will return a 0 you can add a if statement to it so that if the string is empty it will return 0 (using methods like isEmpty())

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4c58815 here git commit i did to fix the issue

if (string.isBlank()){
return 0;
}
String[] words = string.split("\\s+");
return words.length;

}

@Override
public String removeNthCharacter(int n, boolean maintainSpacing) {
return null;
String string = getString();
StringBuilder result = new StringBuilder();

// exception throw IndexOutOfBoundsException
if (n > string.length()) {
throw new IndexOutOfBoundsException("n is more then string ");
}
// exception throw IllegalArgumentException
if (n <= 0) {
throw new IllegalArgumentException("n is less then or equal to zero");
}

int target_n = n;
for (int i = 0; i < string.length(); i++) {

// gets character
char c = string.charAt(i);

// if i is not equal to n then it add charter
if (i != target_n-1) {
result.append(c);

}
else {
if(maintainSpacing) {

result.append(' ');

}
target_n += n;
}


}
return result.toString();
}

@Override
public String[] getSubStrings(int startWord, int endWord) {
return null;
// get number of words
int numberOfWords = count();
String string = getString();
String[] words = string.split("\\s+");


// exception throw IndexOutOfBoundsException

if (numberOfWords < endWord) {
throw new IndexOutOfBoundsException("string has less then endword ");
}
// exception throw IllegalArgumentException

if (startWord <= 0 || endWord <= 0 || startWord > endWord) {
throw new IllegalArgumentException("startword or endword is invalid ");
}

String[] substrings = new String[endWord - startWord + 1];

int count = 0;
for (int i = startWord-1; i <= endWord-1;i++){
substrings[count] = words[i];
count++;
}
return substrings;
}

@Override
public String restoreString(int[] indices) {
return null;
}
String string = getString();
int stringSize = string.length();

System.out.println("The count is: " + stringSize+ "indices.length = "+indices.length);


// exception throw IllegalArgumentException

if (stringSize != indices.length ) {
throw new IllegalArgumentException("length of indices does not match string length ");
}



char[] stringOutPut = new char[indices.length];

for (int i = 0; i < stringSize; i++) {
int index = indices[i];


// exception throw IndexOutOfBoundsException
//indices.length
if (index < 0 || index >= stringSize) {
throw new IndexOutOfBoundsException("string has less then endword ");
}

stringOutPut[i] = string.charAt(index);

}
return new String(stringOutPut);
}
}
Loading