Leetcode537 Complex Number Multiplication Java实现

没接触过在Java中对字符串进行寻找字符或者切片的操作,所以刚上手时感觉有点难受。后来翻看API确认了两种思路,方法1是用String.indexOf找到String里+和i的位置,之后使用String.substring方法得到切分后的两个子String,之后用Integer.valueOf,得到实部和虚部的两个数,进而进行乘法,最后通过String.format方法构建字符串即可。方法2是用String.split(regex)来分离字符。

先实现了方法1:

public class ComplexNumberMultiplication {
    //法1:用String.indexOf;法2:用String.split(regex)。之后用Integer.valueOf()。
    public static int[] getNumv1(String t) {
        int PLUSINDEX = t.indexOf("+");
        int iINDEX = t.indexOf("i");
        int[] x = new int[2];
        x[0] = Integer.valueOf(t.substring(0, PLUSINDEX));
        x[1] = Integer.valueOf(t.substring(PLUSINDEX+1, iINDEX));
        return x;
    }
    public String complexNumberMultiply(String a, String b) {
        int[] xa = getNumv1(a);
        int[] xb = getNumv1(b);
        int[] result = new int[2];
        result[0]=xa[0]*xb[0]-xa[1]*xb[1];
        result[1]=xa[0]*xb[1]+xa[1]*xb[0];
        String r = String.format("%d+%di",result[0],result[1]);
        return r;
    }
}

猜你喜欢

转载自www.cnblogs.com/chason95/p/9270159.html