Char is 16 bit unsigned data type in Java used to store characters and String
is an immutable array of char
. In Java you cannot cast a primitive char
element to String
.
Below I have given five methods to convert a char
to String
. Also I have included common mistakes that gives compile time errors.
package com.deepumohan.tech.chartostring; public class CharToString { public static void main(String[] args) { char x = 'x'; System.out.println(concatBlankString(x)); System.out.println(stringValueOf(x)); System.out.println(characterToString(x)); System.out.println(characterObjectToString(x)); System.out.println(charArray(x)); } // append a blank string public static String concatBlankString(char x) { return x + ""; } // use String.valueOf(char) static function public static String stringValueOf(char x) { return String.valueOf(x); } // use Character.toString(char) static function public static String characterToString(char x) { return Character.toString(x); } // create new Character object from the given char and // then use object's toString() method public static String characterObjectToString(char x) { return new Character(x).toString(); } // create new char[] array from the char and pass it to // String constructor public static String charArray(char x) { return new String(new char[]{x}); } /* // Compile time error // No suitable constructor found public static String noConstructor(char x) { return new String(x); } // Compile time error // Inconvertible types public static String inconvertibleTypes(char x) { return (String) x; } */ }
I wonder why Java doesn't include String
constructor that accept a single char
as argument.