# LeetCode – Add Binary (Java)

Given two binary strings, return their sum (also a binary string).

For example, a = "11", b = "1", the return is "100".

Java Solution

Very simple, nothing special. Note how to convert a character to an int.

```public String addBinary(String a, String b) { if(a==null || a.length()==0) return b; if(b==null || b.length()==0) return a;   int pa = a.length()-1; int pb = b.length()-1;   int flag = 0; StringBuilder sb = new StringBuilder(); while(pa >= 0 || pb >=0){ int va = 0; int vb = 0;   if(pa >= 0){ va = a.charAt(pa)=='0'? 0 : 1; pa--; } if(pb >= 0){ vb = b.charAt(pb)=='0'? 0: 1; pb--; }   int sum = va + vb + flag; if(sum >= 2){ sb.append(String.valueOf(sum-2)); flag = 1; }else{ flag = 0; sb.append(String.valueOf(sum)); } }   if(flag == 1){ sb.append("1"); }   String reversed = sb.reverse().toString(); return reversed; }```

UPDATE: we can simply the method above.

```public String addBinary(String a, String b) { StringBuilder sb = new StringBuilder();   int i=a.length()-1; int j=b.length()-1;   int carry = 0;   while(i>=0 || j>=0){ int sum=0;   if(i>=0 && a.charAt(i)=='1'){ sum++; }   if(j>=0 && b.charAt(j)=='1'){ sum++; }   sum += carry;   if(sum>=2){ carry=1; }else{ carry=0; }   sb.insert(0, (char) ((sum%2) + '0'));   i--; j--; }   if(carry==1) sb.insert(0, '1');   return sb.toString(); }```
Category >> Algorithms >> Interview >> Java
If you want someone to read your code, please put the code inside <pre><code> and </code></pre> tags. For example:
```<pre><code>
String foo = "bar";
</code></pre>
```
• Abhishek Nandgaonkar

Why not use stock methods?
System.out.println(Integer.toBinaryString(Integer.parseInt(“11”,2) + Integer.parseInt(“1”,2)));

• Matias SM

A “cheating” solution:
``` String addBinary(String a, String b) { return new BigInteger(a, 2).add(new BigInteger(b, 2)).toString(2); } ```

• Renzo Nuccitelli