题目:请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法的输入则返回error
输入描述:
输入为一行,包含两个字符串,字符串的长度在[1,100]。
输出描述:
输出为一行。合法情况输出相加结果,非法情况输出error
示例1
输入
123 123
abd 123
输出
246
error
解析:该题目需要注意了,不能直接用int或者long进行加减,不然会溢出的。需要使用BigInteger加减。
import java.util.Scanner;
import java.math.BigInteger;
/**
* Created by Administrator on 2017/8/8.
*/
public class Main {
public static String add(String s1,String s2){
for(int i=0;i<s1.length();i++){//检查s1是否满足数字要求
if(!(s1.charAt(i)>='0'&&s1.charAt(i)<='9')){
return "error";
}
}
for(int i=0;i<s2.length();i++){//检查s2是否满足数字
if(!(s2.charAt(i)>='0'&&s2.charAt(i)<='9')){
return "error";
}
}
BigInteger a = new BigInteger(s1);
BigInteger b = new BigInteger(s2);
a=a.add(b);//a加上b,会有返回值的,返回的是BigInteger
return a.toString();
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
String s=sc.nextLine();
String [] str=s.split(" ");
System.out.println(add(str[0],str[1]));
}
}
}