Print string as bytes

Can someone tell me how to print a string as bytes, i.e. the corresponding ASCII code ?!

My input is a normal string like "9", and the output should match the corresponding ASCII value of the character "9"

+4
source share
4 answers

Use the String.getBytes() method.

 byte []bytes="Hello".getBytes(); for(byte b:bytes) System.out.println(b); 
+3
source

If you are looking for a byte array - see this question: How to convert a Java string to an ASCII byte array?

To get the ascii value of each individual character, you can do:

 String s = "Some string here"; for (int i=0; i<s.length();i++) System.out.println("ASCII value of: "+s.charAt(i) + " is:"+ (int)s.charAt(i) ); 
+4
source

Hi I'm not sure what you want, but maybe the following method helps to print it.

  String str = "9"; for (int i = 0; i < str.length(); i++) { System.out.println(str.charAt(i) + " ASCII " + (int) str.charAt(i)); } 

you can see it at http://www.java-forums.org/java-tips/5591-printing-ascii-values-characters.html

+2
source

Naive approach:

  • You can iterate through an array of bytes:

    final byte[] bytes = "FooBar".getBytes(); for (byte b : bytes) { System.out.print(b + " "); }

    Result: 70 111 111 66 97 114

  • or through a char array and convert char to a primitive int

    for (final char c : "FooBar".toCharArray()) { System.out.print((int) c + " "); }

    Result: 70 111 111 66 97 114

  • or, thanks to Java8, using forEach via inputSteam: "FooBar".chars().forEach(c -> System.out.print(c + " "));

    Result: 70 111 111 66 97 114

  • or, thanks to Java8 and Apache Commons Lang : final List<Byte> list = Arrays.asList(ArrayUtils.toObject("FooBar".getBytes())); list.forEach(b -> System.out.print(b + " ")); final List<Byte> list = Arrays.asList(ArrayUtils.toObject("FooBar".getBytes())); list.forEach(b -> System.out.print(b + " "));

    Result: 70 111 111 66 97 114

Better to use charset (ASCII, UTF-8, ...):

 // Convert a String to byte array (byte[]) final String str = "FooBar"; final byte[] arrayUtf8 = str.getBytes("UTF-8"); for(final byte b: arrayUtf8){ System.out.println(b + " "); } 

Result: 70 111 111 66 97 114

 final byte[] arrayUtf16 = str.getBytes("UTF-16BE"); for(final byte b: arrayUtf16){ System.out.println(b); } 

Result: 70 0 111 0 111 0 66 0 97 0 114

Hope this helps.

+1
source

Source: https://habr.com/ru/post/1383381/


All Articles