问题
输入两个字符串a和b,字符串内容为二进制数字,求两个字符串相加的结果,加法计算方法以二进制方式计算,并返回对应的字符串结果。要求程序尽可能的高效。示例如下:

import java.util.*;
public class Main
{
public static String add(String a, String b) {
StringBuilder sb = new StringBuilder();
int x = 0, y = 0, pre = 0, sum = 0;
while (a.length() != b.length()) {
if (a.length() > b.length()) {
b = "0" + b;
} else {
a = "0" + a;
}
}
for (int i = a.length()-1; i >= 0; i--) {
x = a.charAt(i) - '0';
y = b.charAt(i) - '0';
sum = x+y+pre; // 低位做加法
if (sum >= 2) {
pre = 1;
sb.append(sum-2);
} else {
pre = 0;
sb.append(sum);
}
}
if (pre == 1) {
sb.append("1");
}
return sb.reverse().toString();
}
public static void main(String[] args) {
String str1 = null;
String str2 = null;
Scanner scan = new Scanner(System.in);
if (scan.hasNext()) {
str1 = scan.next();
str2 = scan.next();
}
System.out.println(add(str1, str2));
}
}