1. 程式人生 > >輸入兩個表示複數的字串,輸出他們相乘的結果的字串複數

輸入兩個表示複數的字串,輸出他們相乘的結果的字串複數

舉例: 輸入:1+2i 2+1 輸出:0+5i

public class test4 {

public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
	
    java.lang.String s1 = scanner.nextLine();
	
    java.lang.String s2=scanner.next();

    int d1[]=new int[2];

    change(s1,d1);
    int a=d1[0];
    int b=d1[1];

    change(s2,d1);
    int c=d1[0];
    int d=d1[1];

    //對結果進行處理

    int e=a*c-b*d;
    int f=b*c+a*d;

    StringBuffer re=new StringBuffer();
    re.append(e);
    if(f<0)
        re.append(f);
    else {
        re.append("+");
        re.append(f);
    }

    re.append("i");
    System.out.println(re.toString());
}


//
public static void change(String s,int d[]){
    char temp[] = s.toCharArray();
    char op1 = '-';
    StringBuffer s1 = new StringBuffer();
    int i;
    for (i = 0; i < temp.length; i++) {

        if (temp[i] == '-' || temp[i] == '+') {
            op1 = temp[i];
            break;
        }
        s1.append(temp[i]);

    }


    int a = Integer.valueOf(s1.toString());
    d[0]=a;

    //注意為啥不用string去拷貝字元陣列
    StringBuffer st = new StringBuffer();
    for (int j = i+1; j < temp.length; j++)
        if (temp[j] != 'i')
            st.append(temp[j]);

    int b = Integer.valueOf(st.toString());
    if(op1=='-')
        b=-b;

     d[1]=b;