public static String getName(int codePoint) {
        if (!isValidCodePoint(codePoint)) {
            throw new IllegalArgumentException();
        }
        String name = getNameImpl(codePoint);
        if (name != null)
            return name;
        if (getType(codePoint) == UNASSIGNED)
            return null;
        UnicodeBlock block = UnicodeBlock.of(codePoint);
        if (block != null)
            return block.toString().replace('_', ' ') + " "
                   + Integer.toHexString(codePoint).toUpperCase(Locale.ENGLISH);
        // should never come here
        return Integer.toHexString(codePoint).toUpperCase(Locale.ENGLISH);
    }
public static String getName ( int codePoint ) { if ( ! isValidCodePoint ( codePoint ) ) { throw new IllegalArgumentException ( ) ; } String name = getNameImpl ( codePoint ) ; if ( name != null ) return name ; if ( getType ( codePoint ) == UNASSIGNED ) return null ; UnicodeBlock block = UnicodeBlock . of ( codePoint ) ; if ( block != null ) return block . toString ( ) . replace ( '_' , ' ' ) + " " + Integer . toHexString ( codePoint ) . toUpperCase ( Locale . ENGLISH ) ; return Integer . toHexString ( codePoint ) . toUpperCase ( Locale . ENGLISH ) ; }
Returns the Unicode name of the specified character
{@code codePoint}, or null if the code point is
{@link #UNASSIGNED unassigned}.
<p>
Note: if the specified character is not assigned a name by
the <i>UnicodeData</i> file (part of the Unicode Character
Database maintained by the Unicode Consortium), the returned
name is the same as the result of expression.

<blockquote>{@code
Character.UnicodeBlock.of(codePoint).toString().replace('_', ' ')
+ " "
+ Integer.toHexString(codePoint).toUpperCase(Locale.ENGLISH);

}</blockquote>

@param  codePoint the character (Unicode code point)

@return the Unicode name of the specified character, or null if
the code point is unassigned.

@exception IllegalArgumentException if the specified
{@code codePoint} is not a valid Unicode
code point.

@since 1.7