首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java从Byte创建字符串,包括空格

Java从Byte创建字符串,包括空格
EN

Stack Overflow用户
提问于 2015-12-22 00:27:54
回答 2查看 1.2K关注 0票数 1

在从字节数组创建字符串时遇到了一个问题,在创建字符串时,数组中0的值被忽略。如果字节值为0,则字符串只添加一个空格,而不是删除它。

例如,它的输出是DT_TestTracelineCTestTraceli

代码语言:javascript
运行
复制
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

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-22 00:35:02

您应该将编码指定为new String() --如果没有编码,您将使用平台默认值(这会使代码更不容易移植,因为现在您正在对正在执行的环境进行假设)。

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

代码语言:javascript
运行
复制
for(int i = 0; i < text.length; i++) {
    if(text[i] == 0) {
        text[i] = 32; 
    }
}
String result = new String(text, StandardCharsets.UTF_8);

你可以看到它在工作,论意为

票数 9
EN

Stack Overflow用户

发布于 2015-12-22 00:35:36

一种方法是在将数组转换为字符串之前对数组进行迭代,并将“0”字符替换为您所使用的任何字符编码中的空格字符代码。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34406659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档