Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
141 views
Welcome To Ask or Share your Answers For Others

1 Answer

The best way is to reuse other's code. Take a look at Apache Commons Complex Numbers.

Here is an example from their page:

ComplexFormat cf = new ComplexFormat();
Complex c = cf.parse("1.110 + 2.222i");

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...