I am trying to accept a string with any of the following variations into my method:
"11+6i" "11-6i" "-11-6i"
Using the code I have below, the first two work correctly but for some reason when the string contains two "-" characters I cannot seem to parse it correctly.
Is there anyway to modify my code for it to be able to parse "-11-6i" as well?
Here is my code thus far:
if (passedString.contains("+")) {
int i = passedString.indexOf("+");
int endIndex = passedString.indexOf("i");
String real = passedString.substring(0, i);
String imag = passedString.substring(i, endIndex);
MyDouble realNum = new MyDouble(Double.parseDouble(real));
MyDouble imagNum = new MyDouble(Double.parseDouble(imag));
cn = new ComplexNumber(realNum, imagNum);
} else {
int i = passedString.indexOf("-");
int endIndex = passedString.indexOf("i");
String real = passedString.substring(0, i);
String imag = passedString.substring(i, endIndex);
MyDouble realNum = new MyDouble(Double.parseDouble(real));
MyDouble imagNum = new MyDouble(Double.parseDouble(imag));
cn = new ComplexNumber(realNum, imagNum);
}
See Question&Answers more detail:os