Pradeep
Pradeep

Reputation: 97

Print unicode literal string as Unicode character

I need to print a unicode literal string as an equivalent unicode character.

System.out.println("\u00A5"); // prints  ¥

System.out.println("\\u"+"00A5"); //prints \u0045  I need to print it as ¥ 

How can evaluate this string a unicode character ?

Upvotes: 3

Views: 6358

Answers (3)

clstrfsck
clstrfsck

Reputation: 14829

As an alternative to the other options here, you could use:

int codepoint = 0x00A5; // Generate this however you want, maybe with Integer.parseInt
String s = String.valueOf(Character.toChars(codepoint));

This would have the advantage over other proposed techniques in that it would also work with Unicode codepoints outside of the basic multilingual plane.

Upvotes: 7

jcaron
jcaron

Reputation: 17710

If you have a string:

System.out.println((char)(Integer.parseInt("00A5",16)));

probably works (haven't tested it)

Upvotes: 3

Maarten Bodewes
Maarten Bodewes

Reputation: 93948

Convert it to a character.

System.out.println((char) 0x00A5);

This will of course not work for very high code points, those may require 2 "characters".

Upvotes: 3

Related Questions