Search code examples
javastringencodingstring-conversion

String to binary output in Java


I want to get binary (011001..) from a String but instead i get [B@addbf1 , there must be an easy transformation to do this but I don't see it.

public static String toBin(String info){
  byte[] infoBin = null;
  try {
   infoBin = info.getBytes( "UTF-8" );
   System.out.println("infoBin: "+infoBin);
  }
  catch (Exception e){
   System.out.println(e.toString());
  }
  return infoBin.toString();
}

Here i get infoBin: [B@addbf1
and I would like infoBin: 01001...

Any help would be appreciated, thanks!


Solution

  • Only Integer has a method to convert to binary string representation check this out:

    import java.io.UnsupportedEncodingException;
    
    public class TestBin {
        public static void main(String[] args) throws UnsupportedEncodingException {
            byte[] infoBin = null;
            infoBin = "this is plain text".getBytes("UTF-8");
            for (byte b : infoBin) {
                System.out.println("c:" + (char) b + "-> "
                        + Integer.toBinaryString(b));
            }
        }
    }
    

    would print:

    c:t-> 1110100
    c:h-> 1101000
    c:i-> 1101001
    c:s-> 1110011
    c: -> 100000
    c:i-> 1101001
    c:s-> 1110011
    c: -> 100000
    c:p-> 1110000
    c:l-> 1101100
    c:a-> 1100001
    c:i-> 1101001
    c:n-> 1101110
    c: -> 100000
    c:t-> 1110100
    c:e-> 1100101
    c:x-> 1111000
    c:t-> 1110100
    

    Padding:

    String bin = Integer.toBinaryString(b); 
    if ( bin.length() < 8 )
      bin = "0" + bin;