Advertisement
kdmk94

parseComplex

Mar 23rd, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.87 KB | None | 0 0
  1. public static ComplexNumber parse(String s) throws NumberFormatException {
  2.     boolean[] signs = { true, true };
  3.     String[] numbers = { "", "" };
  4.     double re = 0.0;
  5.     double im = 0.0;
  6.  
  7.     if (s.startsWith("-")) {
  8.         signs[0] = false;
  9.         s = s.substring(1);
  10.     } else if (s.startsWith("+")) {
  11.         s = s.substring(1);
  12.     }
  13.  
  14.     if (s.contains("-")) {
  15.         signs[1] = false;
  16.         numbers = s.split("-");
  17.     } else if (s.contains("+")) {
  18.         numbers = s.split("\\+");
  19.     } else {
  20.         numbers[0] = s;
  21.     }
  22.  
  23.     for (int i = 0; i < 2; i++) {
  24.         if (numbers[i].contains("i")) {
  25.             if (numbers[i].equals("i")) {
  26.                 im = 1;
  27.             } else {
  28.                 im = Double.parseDouble(numbers[i].replace("i", ""));
  29.             }
  30.             if (!signs[i]) {
  31.                 im = -im;
  32.             }
  33.         } else if(!numbers[i].equals("")){
  34.             re = Double.parseDouble(numbers[i]);
  35.             if (!signs[i]) {
  36.                 re = -re;
  37.             }
  38.         }
  39.     }
  40.  
  41.     return new ComplexNumber(re, im);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement