18

有没有办法在Java中连接char形成a ?String

例子:

String str;
Char a, b, c;
a = 'i';
b = 'c';
c = 'e';

str = a + b + c; // thus str = "ice";
4

7 回答 7

30

使用StringBuilder

String str;
Char a, b, c;
a = 'i';
b = 'c';
c = 'e';

StringBuilder sb = new StringBuilder();
sb.append(a);
sb.append(b);
sb.append(c);
str = sb.toString();

单线:

new StringBuilder().append(a).append(b).append(c).toString();

""+a+b+c给:

new StringBuilder().append("").append(a).append(b).append(c).toString();

我前段时间问过相关问题

于 2013-04-29T15:25:29.820 回答
27

采用str = ""+a+b+c;

这里第一个+Stringconcat,所以结果将是String. 注意""谎言在哪里很重要。

或者(也许)更好,使用StringBuilder.

于 2013-04-29T15:24:13.907 回答
7

您可以使用 StringBuilder:

    StringBuilder sb = new StringBuilder();
    sb.append('a');
    sb.append('b');
    sb.append('c');
    String str = sb.toString()

或者,如果您已经有了字符,则可以将字符数组传递给 String 构造函数:

String str = new String(new char[]{'a', 'b', 'c'});
于 2013-04-29T15:27:11.970 回答
3

如果字符串的大小是固定的,您可能会发现使用字符数组更容易。如果你必须经常这样做,它也会快一点。

char[] chars = new char[3];
chars[0] = 'i';
chars[1] = 'c';
chars[2] = 'e';
return new String(chars);

另外,我在你原来的问题中注意到,你使用Char类。如果您的字符不可为空,最好使用小写字符类型。

于 2020-02-17T11:36:37.880 回答
0

使用Character.toString(char)方法。

于 2013-04-29T15:23:51.943 回答
0

试试这个:

 str = String.valueOf(a)+String.valueOf(b)+String.valueOf(c);

输出:

ice
于 2013-04-29T15:25:11.503 回答
0

我会使用String.format()

char c = 'a';
String s = String.format("%c%c", c, 'b'); // s is "ab"
于 2022-02-02T06:06:04.667 回答