Of course! Converting a char to a String is a fundamental operation in Java. Here’s a comprehensive guide covering the best ways, common pitfalls, and other related conversions.

The Short Answer: The Best Way
The most direct, efficient, and readable way to convert a single char to a String is to use the String constructor that takes a char array.
char myChar = 'A';
// Best and most common way
String myString = new String(new char[]{myChar});
System.out.println(myString); // Output: A
While this looks a bit verbose, it's the most explicit and performs best. For a more concise (but slightly less performant) alternative, you can simply concatenate the char with an empty string.
char myChar = 'B'; String myString = "" + myChar; System.out.println(myString); // Output: B
Detailed Explanation of Methods
Here are the primary methods for converting a char to a String, ranked from best to worst.
Method 1: Using the String Constructor (Recommended)
This is the most idiomatic and performant way. The String class has a constructor that accepts a char[] (a character array). You create an array with a single element—your char—and pass it to the constructor.

Syntax:
String newString = new String(new char[]{theChar});
Example:
public class CharToString {
public static void main(String[] args) {
char ch = 'z';
// The recommended way
String str1 = new String(new char[]{ch});
System.out.println("Original char: " + ch);
System.out.println("Converted String: " + str1);
System.out.println("Is it a String? " + (str1 instanceof String)); // true
}
}
Why it's the best:
- Performance: It's highly optimized for this specific task.
- Clarity: It explicitly states your intent: "create a new
Stringfrom this character data." - No Overhead: It doesn't involve creating temporary objects like empty strings.
Method 2: Using String Concatenation (Common and Simple)
You can concatenate the char with an empty string (). Java's operator is overloaded for String objects. When one operand is a String, the other is automatically converted to a String before concatenation.

Syntax:
String newString = "" + theChar;
Example:
public class CharToStringConcat {
public static void main(String[] args) {
char ch = '7';
// Simple and common, but has minor overhead
String str2 = "" + ch;
System.out.println("Original char: " + ch);
System.out.println("Converted String: " + str2);
}
}
Pros:
- Very concise and easy to read.
- Universally understood by Java developers.
Cons:
- Minor Performance Overhead: It involves the creation of a temporary
Stringobject (the empty string ) and then the creation of the finalStringfrom the concatenation. In most applications, this difference is negligible, but in performance-critical loops, it can add up.
Method 3: Using Character.toString() (Also Good)
The Character wrapper class provides a static toString() method designed for this exact purpose.
Syntax:
String newString = Character.toString(theChar);
Example:
public class CharToStringWrapper {
public static void main(String[] args) {
char ch = '@';
// Using the Character wrapper class
String str3 = Character.toString(ch);
System.out.println("Original char: " + ch);
System.out.println("Converted String: " + str3);
}
}
Pros:
- Highly Readable: The name of the method perfectly describes what it does.
- Good Performance: It's implemented efficiently, similar to the
Stringconstructor method.
Cons:
- It requires a static method call, which some might consider slightly more verbose than simple concatenation.
Methods to AVOID
❌ Incorrect: Casting (String)
You cannot cast a char to a String. A char is a primitive 16-bit Unicode character, while a String is a full object. They are not in the same inheritance hierarchy, so this will result in a compile-time error.
char ch = 'X'; // String str = (String) ch; // COMPILE-TIME ERROR! // Incompatible types: char cannot be converted to String
❌ Incorrect: Using String.valueOf(char[])
This method is for converting an array of characters, not a single character. If you pass a single char in an array, it works, but it's less direct than using the String constructor.
char ch = 'Y';
// This works, but is less direct than new String(new char[]{ch})
String str = String.valueOf(new char[]{ch});
Summary Table
| Method | Example | Performance | Readability | Recommendation |
|---|---|---|---|---|
String Constructor |
new String(new char[]{ch}) |
Excellent | Good | Best for performance and clarity. |
| Concatenation | "" + ch |
Good | Excellent | Best for simplicity and readability in non-critical code. |
Character.toString() |
Character.toString(ch) |
Excellent | Excellent | Excellent alternative, very clear and performant. |
Casting (String) |
(String) ch |
N/A | N/A | Impossible. Compile-time error. |
String.valueOf(char[]) |
String.valueOf(new char[]{ch}) |
Good | Fair | Works, but less direct than the constructor. |
Bonus: Converting a char[] Array to a String
If you have an entire array of characters and want to convert it to a String, you can use the String constructor directly.
char[] charArray = {'H', 'e', 'l', 'l', 'o'};
// The String constructor takes a char[] directly
String fromArray = new String(charArray);
System.out.println(fromArray); // Output: Hello 