簡體   English   中英

在Java中轉換為字符串之前,應如何終止char數組

[英]How should I terminate a char array before converting into a string in Java

我正在從文件中讀取一個char數組,然后使用String構造函數將其也轉換為字符串。

read = fromSystem.read(b);
String s = new String(b);

這段代碼已經存在於程序中很長時間了,並且可以正常工作,盡管到目前為止,它一直在讀取數組的完整大小,每次255個字符。 現在,我正在將該類用於其他目的,並且它讀取的內容各不相同。 我有一個問題,如果它讀取的是20個字符,然后讀取的是15個字符,則先前讀取的最后5個仍在字節數組中。 為了克服這個問題,我在已讀內容的末尾添加了一個空字符。

read = fromSystem.read(b);
if (read < bufferLength) {
    b[read] = '\0';
}
String s = new String(b);

如果我那么做

System.out.println(b);

它有效,緩沖區的末尾不顯示。 但是,如果我將該字符串傳遞到消息對話框中,它仍然會顯示。 還有其他終止字符串的方法嗎?

采用:

String s = new String(b, 0, read)

代替。

您需要使用String構造函數,該構造函數允許您指定字節數組中有效的字節范圍。

String(byte [] bytes,int偏移量,int長度);

像這樣使用它:

read = fromSystem.read(b);
String s = new String(b, 0, read);

暫無
暫無

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

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