为了账号安全,请及时绑定邮箱和手机立即绑定

如何将char转换为String?

/ 猿问

如何将char转换为String?

慕运维1137616 2019-09-18 13:36:55

我有一个char,我需要一个String。我如何从一个转换为另一个?



查看完整描述

3 回答

?
慕神8447489

你可以用Character.toString(char)。请注意,此方法只是返回一个调用String.valueOf(char),这也有效。


正如其他人所指出的那样,字符串连接也可以作为一种捷径:


String s = "" + 's';

但这归结为:


String s = new StringBuilder().append("").append('s').toString();

这是效率较低的,因为StringBuilder它由一个char[](过度分配的StringBuilder()to 16)支持,只有那个数组被结果防御性地复制String。


String.valueOf(char)通过将char单元素数组包装并将其传递给包私有构造函数来“进入后门” String(char[], boolean),从而避免了数组副本。


查看完整回答
反对 回复 2019-09-18
?
慕斯王

好问题。我有以下五种方法可以做到这一点。


1. String stringValueOf = String.valueOf('c'); // most efficient


2. String stringValueOfCharArray = String.valueOf(new char[]{x});


3. String characterToString = Character.toString('c');


4. String characterObjectToString = new Character('c').toString();


   // Although this method seems very simple, 

   // this is less efficient because the concatenation

   // expands to new StringBuilder().append(x).append("").toString();

5. String concatBlankString = 'c' + "";


6. String fromCharArray = new String(new char[]{x});

注意:Character.toString(char)返回String.valueOf(char)。所以两者都是一样的。


String.valueOf(char[] value)invokes new String(char[] value),后者又设置valuechar数组。


public String(char value[]) {

    this.value = Arrays.copyOf(value, value.length);

}

另一方面,String.valueOf(char value)调用以下包私有构造函数。


String(char[] value, boolean share) {

    // assert share : "unshared not supported";

    this.value = value;

}

从源代码String.java中的Java 8的源代码


因此String.valueOf(char)似乎是最有效的方法,在这两个存储器和速度方面,用于转换char到String。


如何在Java中将原始char转换为String

如何使用Example将Java中的Char转换为String


查看完整回答
反对 回复 2019-09-18
?
蛊毒传说

下面是转换为char c到String s的各种方法(按速度和效率的降序排列)


char c = 'a';

String s = String.valueOf(c);             // fastest + memory efficient

String s = Character.toString(c);

String s = new String(new char[]{c});

String s = String.valueOf(new char[]{c});

String s = new Character(c).toString();

String s = "" + c;                        // slowest + memory inefficient


查看完整回答
反对 回复 2019-09-18

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信