首页 新闻 会员 周边

字节数组为什么不能使用valueof();方法

0
悬赏园豆:50 [已解决问题] 解决于 2021-02-02 19:14

字节数组为什么不能使用valueof();方法
如题。谢谢大家了~

xinghe7的主页 xinghe7 | 初学一级 | 园豆:157
提问于:2021-01-29 14:57
< >
分享
最佳答案
0

问题描述有点不清楚哦,是问的JavaString.valueOf()吗?

以下回答仅仅针对JavaString.valueOf():

String.valueOf() 方法其实很简单,只做了一件事,帮我们创建了一个String对象,譬如char[] 转为字符串:

public static String valueOf(char data[]) {  
    return new String(data);  
}

至于为什么不提供byte[] 到字符串的转换,我认为是因为编码的缘故:
byte到char的转换,是需要指明编码的,同样一个 byte 数组,在不同的编码格式下,对应的字符串是不一样的。valueOf 如果要支持 byte 数组,那么就需要两个参数,形如: String.valueOf(byte[] bytes, Charset charset)

因此我猜想,这样 valueOf ,还不如让开发者直接调用public String(byte bytes[], int offset, int length, Charset charset)呢。

收获园豆:50
。淑女范erり | 小虾三级 |园豆:961 | 2021-01-29 15:30

啊啊啊,我又去看了看API,觉得你说的好有道理啊!!!

xinghe7 | 园豆:157 (初学一级) | 2021-01-31 22:43
其他回答(1)
0

Java中的String类提供了一个构造函数
public String(byte[] bytes, int start, int length);
这个构造函数用于将byte数组转换为字符串,他的第二个参数是开始下标,第三个参数是结束下标。
构造函数都有了,还要valueOf干嘛[doge]

Delayer | 园豆:202 (菜鸟二级) | 2021-02-01 01:14

嗯嗯,我看了API 晓得了,谢谢你~

支持(0) 反对(0) xinghe7 | 园豆:157 (初学一级) | 2021-02-02 19:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册