- 编写一个程序计算两复数之和,输入表达式为(2,3i)+(4,5i),则结果为(6,8i),如果输入错误则通过异常处理提示错误。注意,两个复数之间的分隔符是“+ ”,可编写一个方法将带括号形式的复数字符串转化为实际的复数对象。注意用取子串的办法提取数据,一个复数内x和y部分的分隔符是逗号。
运行:
代码:
import javax.swing.JOptionPane;
public class FuShu {
int x;
int y;
public FuShu() {}
public FuShu(int x,int y) {
this.x=x;
this.y=y;
}
public static String Qiu(FuShu m,FuShu n) {
int x1=m.x+n.x;
int y1=m.y+n.y;
return "("+x1+","+y1+"i)";
}
//public ;
public static void main(String[] args) {
// TODO 自动生成的方法存根
try {
String s=JOptionPane.showInputDialog("请输入");
int p=s.indexOf("+");
//以(2,3i)+(4,5i)为例
//分离两个复数
String s1=s.substring(1,p-1);
String s2=s.substring(p+2,s.length()-1);
int p1=s1.indexOf(",");
//s1为2,3i
int x1=Integer.parseInt(s1.substring(0,p1));//x1=2
int y1=Integer.parseInt(s1.substring(p1+1,s1.length()-1));//y1=3
//s2为4,5i
int x2=Integer.parseInt(s2.substring(0,p1));
int y2=Integer.parseInt(s2.substring(p1+1,s2.length()-1));
FuShu f1=new FuShu(x1,y1);
FuShu f2=new FuShu(x2,y2);
System.out.println(Qiu(f1, f2));
}catch (Exception e) {
System.out.print("数据格式错误!eg:(2,3i)+(4,5i)");
}
}
}
总结:取子串就是substring,注意这里的string是小写!!!