【问题标题】:having trouble converting from String to byte[]无法从 String 转换为 byte[]
【发布时间】:2013-02-10 15:36:51
【问题描述】:
public static Runnable reader() throws IOException {
    Log.e("Communication", "reader");
    din = new DataInputStream(sock.getInputStream());
    brdr = new BufferedReader(new InputStreamReader(din), 300);
    boolean done = false;
    while (!done) {
        try {
            char[] buffer = new char[200];
            int anzahlZeichen = brdr.read(buffer, 0, 200);
            String nachricht = new String(buffer, 0, anzahlZeichen);
            byte[] in = nachricht.getBytes("ISO-8859-1");
            for (int counter = 0; counter < nachricht.length(); counter++) {
                System.out.println(in);
            }
            if (nachricht != null)
                answer();
            System.out.println(nachricht);

        } catch (IOException ioe) {
            done = true;
        }
    }

    return null;
}

我想将字符串 nachricht 转换为 Byte[] in 但我不明白。有人可以帮忙吗?我只收到数字,没有单词或字母。也欢迎另一种方法。我在System.out.println(nachricht) 得到的只有七次[B@41c04778,但我应该得到01 02 03 04 05 06 07

【问题讨论】:

  • 你不应该在同一个项目中使用来自不同语言的变量名;保持一致,这将使您的代码更易于阅读。
  • 谢谢 G.Bach,我会这样做

标签: java string bytearray bufferedreader valueconverter


【解决方案1】:

这个

[B@41c04778

表示您正在打印一个字节数组 ([) (B)。

Java 数组没有有用的toString() 实现。以上内容有助于理解,因为您将来也会这样做。其他原始类型存在明显的助记符。

【讨论】:

    【解决方案2】:

    你的问题是lineSystem.out.println(in)

    应该是System.out.println(in[counter]);

    【讨论】:

      猜你喜欢
      • 2012-10-07
      • 2016-01-29
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 2020-06-11
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多