这道题主要是实现复数的乘法(主要是实现题目的特殊要求)
利用string.split(“\+”)将字符串“+”分开得到复数的实部和虚部
(a1+a2*i)*(b1+b2*i)=(a1*b1-a2*b2)+(a1*b2+a2*b1)*i,但是当结果为负数时候,有特殊的形式“+-”,所以需数要进行判断正负,具体代码如下:
public String complexNumberMultiply(String a, String b) {
String[] A=a.split("\\+");
String[] B=b.split("\\+");
int a1=Integer.parseInt(A[0]);
int a2=Integer.parseInt(A[1].replace("i", ""));
int b1=Integer.parseInt(B[0]);
int b2=Integer.parseInt(B[1].replace("i", ""));
int re=a1*b1-a2*b2;
int im=a1*b2+a2*b1;
StringBuffer sb=new StringBuffer();
sb.append(re);
sb.append("+");
if (im<0) {
sb.append("-"+Math.abs(im));
}else {
sb.append(Math.abs(im));
}
sb.append("i");
return sb.toString();
}