Is there a way to concatenate char to form a String in Java?

Example:

String str; Char a, b, c; a = 'i'; b = 'c'; c = 'e'; str = a + b + c; // thus str = "ice"; 
0

7 Answers

Use 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(); 

One-liner:

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

Doing ""+a+b+c gives:

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

I asked some time ago related question.

1

Use str = ""+a+b+c;

Here the first + is String concat, so the result will be a String. Note where the "" lies is important.

Or (maybe) better, use a StringBuilder.

5

You can use StringBuilder:

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

Or if you already have the characters, you can pass a character array to the String constructor:

String str = new String(new char[]{'a', 'b', 'c'}); 
2

If the size of the string is fixed, you might find easier to use an array of chars. If you have to do this a lot, it will be a tiny bit faster too.

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

Also, I noticed in your original question, you use the Char class. If your chars are not nullable, it is better to use the lowercase char type.

1

Use the Character.toString(char) method.

Try this:

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

Output:

ice 

I would use String.format():

char c = 'a'; String s = String.format("%c%c", c, 'b'); // s is "ab" 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy