给定两个表示复数的字符串。
返回表示它们乘积的字符串。注意,根据定义 i2 = -1 。
示例 1:
输入: “1+1i”, “1+1i”
输出: “0+2i”
解释: (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i ,你需要将它转换为 0+2i 的形式。
示例 2:
输入: “1±1i”, “1±1i”
输出: “0±2i”
解释: (1 - i) * (1 - i) = 1 + i2 - 2 * i = -2i ,你需要将它转换为 0±2i 的形式。
注意:
输入字符串不包含额外的空格。
输入字符串将以 a+bi 的形式给出,其中整数 a 和 b 的范围均在 [-100, 100] 之间。输出也应当符合这种形式。
知识点:
split() 方法根据匹配给定的正则表达式来拆分字符串。
http://www.runoob.com/java/java-string-split.html
parseInt() 方法用于将字符串参数作为有符号的十进制整数进行解析。
http://www.runoob.com/java/number-parseint.html
class Solution {
public String complexNumberMultiply(String a, String b) {
String x[] = a.split("\\+|i"); //要转义
String y[] = b.split("\\+|i"); //不要写成("\\+ | i")
int aReal = Integer.parseInt(x[0]);
int aImg = Integer.parseInt(x[1]);
int bReal = Integer.parseInt(y[0]);
int bImg = Integer.parseInt(y[1]);
return (aReal * bReal - aImg * bImg) + "+" + (aReal * bImg + aImg * bReal) + "i";
}
}