Reputation: 5575
Can somebody tell me how to print a string as bytes i.e. its corresponding ASCII code?!
My input is a normal string like "9" and the output should be the corresponding ASCII value of character '9'
Upvotes: 6
Views: 14388
Reputation: 6462
A naive approach would be:
You can iterate through a byte array:
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 the char into primitive int
for (final char c : "FooBar".toCharArray()) {
System.out.print((int) c + " ");
}
Result: 70 111 111 66 97 114
or, thanks to Java8, with a forEach through the 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 + " "));
Result: 70 111 111 66 97 114
A better approach would use the 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 it has helped.
Upvotes: 1
Reputation: 94653
Use String.getBytes()
method.
byte []bytes="Hello".getBytes();
for(byte b:bytes)
System.out.println(b);
Upvotes: 3
Reputation: 30688
Hi I am not sure what do you want but may be 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
Upvotes: 2
Reputation: 3321
If you're 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) );
Upvotes: 4