packagecom.test;importjava.sql.Timestamp;importjava.text.ParseException;public classBigMathAdd {public static void main(String[] args) throwsParseException{
String addA="999999999999999999999999999999999999999999999";
String addB="9";
System.out.println(newTimestamp(System.currentTimeMillis()));
System.out.println(addA+"+"+addB+"="+strvalue(addA,addB));
System.out.println(9999+99);
System.out.println(newTimestamp(System.currentTimeMillis()));
}public staticString strvalue(String addA,String addB){
String strvalue="";int lenA=addA.length();int lenB=addB.length();int templen=0;//调整长度相同
if(lenA>=lenB){
templen=lenA-lenB;
addB=maxlen(addB,templen);
}else{
templen=lenB-lenA;
addA=maxlen(addA,templen);
}char addcharA[]=addA.toCharArray();char addcharB[]=addB.toCharArray();int len=addcharA.length;int valueC[]=new int[len];for(int i=0;i
valueC[i]=a+b;
}//每项相加存储
int tmp=0;//处理进位
for(int i=valueC.length-1;i>=0;i--){if(valueC[i]+tmp>=10){
strvalue=String.valueOf(valueC[i]+tmp-10)+strvalue;
tmp=(valueC[i]+tmp)/10;
}else{
strvalue=String.valueOf(valueC[i]+tmp)+strvalue;
tmp=0;
}
}if(tmp!=0){
strvalue= String.valueOf(tmp)+strvalue;
}
if(strvalue.charAt(0)=='0'){
strvalue = MatchParen(strvalue); //去掉前面的0
}returnstrvalue;
}//调整长度,使其长度一样
private static String maxlen(String str,inttemplen){
String strmax=null;
StringBuffer buff=newStringBuffer();for(int i=0;i
buff.append("0");
}
strmax=buff.toString()+str;returnstrmax;
}
}
private static String MatchParen(String s){
Pattern patthern = Pattern.compile("^0*");
Matcher match = patthern.matcher(s);
System.out.println(match.find());
s = match.replaceAll("");
return s;
}