簡體   English   中英

字符串和字節[]問題java

[英]String and byte[] issue java

我正在使用getbytes()和String構造函數將Java中的String轉換為byte [],然后再次將byte []轉換為String,

String message = "Hello World";
byte[] message1 = message.getbytes();

使用PipedInput / OutputStream我將此發送到另一個線程,

byte[] getit = new byte[1000];
pipedinputstream.read(getit);
print(new String(getit));

最后的打印結果是要打印1000條...我想要實際的字符串長度。 我怎樣才能做到這一點?

讀取String時,您需要獲取讀取的字節數,並為String提供長度:

byte[] getit = new byte[1000];
int readed = pipedinputstream.read(getit);
print(new String(getit, 0, readed));

請注意,如果您的字符串長於1000個字節,它將被截斷。

您將忽略讀取的字節數。 如下進行:

  byte[] getit = new byte[1000]; 
  int bytesRead = pipedinputstream.read(getit); 
  print(new String(getit, 0, bytesRead).length()); 
public String getText (byte[] arr)
{
StringBuilder sb = new StringBuilder (arr.length);

for (byte b: arr)
    if (b != 32)
        sb.append ((char) b);

return sb.toString ();
}

不太干凈,但應該可以。

我將一個String轉換為byte [],然后再將byte []轉換為String

為什么? 保證往返不起作用。 字符串不是二進制數據的容器。 不要這樣 停止將頭撞在牆上:一段時間后疼痛會停止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM