打印字符串作为字节

时间:2011-11-28 06:42:24

标签: java string printing byte

有人可以告诉我如何将字符串打印为字节,即相应的ASCII码?!

我的输入是普通字符串,如“9”,输出应该是字符'9'的相应ASCII值

4 个答案:

答案 0 :(得分:4)

如果您正在寻找字节数组 - 请参阅此问题:How to convert a Java String to an ASCII byte array?

要获取每个角色的ascii值,您可以这样做:

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) );

答案 1 :(得分:3)

使用String.getBytes()方法。

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

答案 2 :(得分:2)

您好我不确定您想要什么,但可能是以下方法有助于打印它。

    String str = "9";

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

您可以在http://www.java-forums.org/java-tips/5591-printing-ascii-values-characters.html

看到它

答案 3 :(得分:1)

一种天真的方法是:

  1. 您可以遍历字节数组:

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

      

    结果:70 111 111 66 97 114

  2. 或者,通过char数组并将char转换为原始int

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

      

    结果:70 111 111 66 97 114

  3. 或者,感谢Java8,通过inputSteam使用forEach: "FooBar".chars().forEach(c -> System.out.print(c + " "));

      

    结果:70 111 111 66 97 114

  4. 或者,感谢Java8和Apache Commons Langfinal List<Byte> list = Arrays.asList(ArrayUtils.toObject("FooBar".getBytes())); list.forEach(b -> System.out.print(b + " "));

      

    结果:70 111 111 66 97 114

  5. 更好的方法是使用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 + " ");
    }
    
      

    结果:70 111 111 66 97 114

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

    结果:70 0 111 0 111 0 66 0 97 0 114

    希望它有所帮助。