当前位置:  开发笔记 > 编程语言 > 正文

Java从包含空格的字节数组创建字符串

如何解决《Java从包含空格的字节数组创建字符串》经验,为你挑选了1个好方法。

从字节数组创建String时遇到问题,在构造字符串时忽略数组内的0值.我怎样才能使它如果字节值为0,String只是添加一个空格而不是删除它.

例如,这是输出DT_TestTracelineCTestTraceli.

public static void main(String[] args) {
    byte[] text = {68, 84, 95, 84, 101, 115, 116, 84, 114, 97, 99, 101, 108, 105, 110, 101, 0, 0, 0, 0, 67, 84, 101, 115, 116, 84, 114, 97, 99, 101, 108, 105};
    System.out.println(new String(text));
}

我怎么能这样做,所以我可以使用制表符分隔这两个字符串或使用空格,以便输出 DT_TestTraceline CTestTraceli

谢谢



1> nickb..:

你应该指定一个编码new String()- 没有一个,你使用平台默认(这使你的代码更不便携,因为现在你正在对你正在执行的环境做出假设).

假设您使用的是UTF-8,您可以用32空格字符的UTF-8代码替换所有零,它应该可以工作:

for(int i = 0; i < text.length; i++) {
    if(text[i] == 0) {
        text[i] = 32; 
    }
}
String result = new String(text, StandardCharsets.UTF_8);

你可以看到它在ideone上工作.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有