编辑代码

package com.luyy;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
//        输入(1,2) (3,4)
        String str = new Scanner(System.in).nextLine();
        String[] s = str.split(" ");
        Plural num1 = parseComplex(s[0]);
        Plural num2 = parseComplex(s[1]);
        
        Plural sum = num1.add(num2);
        System.out.println("两个复数加: " + sum);
        
        Plural difference = num1.subtract(num2);
        System.out.println("两个复数减: " + difference);
        
        Plural product = num1.multiply(num2);
        System.out.println("两个复数乘: " + product);
        
    }
    
    // 将形如"(1,2)"的字符串解析为复数
    private static Plural parseComplex(String s) {
        s = s.replaceAll("[()]", ""); // 去字符串里面除括号
        String[] parts = s.split(",");
        int real = Integer.parseInt(parts[0]);
        int imaginary = Integer.parseInt(parts[1]);
        return new Plural(real, imaginary);
    }
}

/**
 * 复数类
 */
class Plural {
    private int real;
    private int imaginary;
    
    public Plural(int real, int imaginary) {
        this.real = real;
        this.imaginary = imaginary;
    }
    
    public int getReal() {
        return real;
    }
    
    public int getImaginary() {
        return imaginary;
    }
    
    public Plural add(Plural plural) {
        int newReal = this.real + plural.real;
        int newImaginary = this.imaginary + plural.imaginary;
        return new Plural(newReal, newImaginary);
    }
    
    public Plural subtract(Plural plural) {
        int newReal = this.real - plural.real;
        int newImaginary = this.imaginary - plural.imaginary;
        return new Plural(newReal, newImaginary);
    }
    
    public Plural multiply(Plural plural) {
        int newReal = this.real * plural.real - this.imaginary * plural.imaginary;
        int newImaginary = this.real * plural.imaginary + this.imaginary * plural.real;
        return new Plural(newReal, newImaginary);
    }
    
    @Override
    public String toString() {
        if(this.imaginary<0)//当复数的虚部小于0 为负数时,避免多打印出一个"+"
        {
            return this.real+""+this.imaginary+"i";
        }
        return this.real+"+"+this.imaginary+"i";
    }
}