Get ASCII value at input word
I have a character:
char ch='A'
开发者_JAVA百科Give me method which converts char to ASCII
ASCII NUMBER
.
Output : 65
char ch='A';
System.out.println((int)ch);
There is a major gotcha associated with getting an ASCII code of a char
value.
In the proper sense, it can't be done.
It's because char
has a range of 65535
whereas ASCII is restricted to 128
. There is a huge amount of characters that have no ASCII representation at all.
The proper way would be to use a Unicode code point which is the standard numerical equivalent of a character in the Java universe.
Thankfully, Unicode is a complete superset of ASCII. That means Unicode numbers for Latin characters are equal to their ASCII counterparts. For example, A
in Unicode is U+0041
or 65
in decimal. In contrast, ASCII has no mapping for 99% of char-s. Long story short:
char ch = 'A';
int cp = String.valueOf(ch).codePointAt(0);
Furthermore, a 16-bit primitive char
actually represents a code unit, not a character and is thus restricted to Basic Multilingual Plane, for historical reasons. Entities beyond it require Character objects which deal away with the fixed bit-length limitation.
A char
is actually a numeric datatype - you can add one to an int
, for example. It's an unsigned short
(16 bits). In that regard you can just cast the output to, say, an int
to get the numeric value.
However you need to think a little more about what it is you're asking - not all characters are ASCII values. What output do you expect for â
, for example, or 你
?
Moreover, why do you want this? In this day and age you ought to be thinking about Unicode, not ASCII. If you let people know what your goal is, and how you intend to use this returned value, we can almost certainly let you know of a better way to achieve it.
char (with a lower-case c) is a numeric type. It already holds the ascii value of the char. Just cast it to an integer to display it as a numeric value rather than a textual value:
System.out.println("char " + ch + " has the following value : " + (int) ch);
char a='a';
char A='A';
System.out.println((int)a +" "+(int)A);
Output:
97 65
simply do
int a = ch
(also this has nothing to do with android)
精彩评论