文字の整数表現を見つけて、後でintの文字表現を見つけたいと思います。intに戻ってCharを返す
私の現在のソリューションは、このですが、それは動作しません:
String s = "A"
Integer b = Character.getNumericValue(s.toCharArray()[0]); // 10
char c = Character.toChars(b)[0]; // (blank)
は、私はこれをどのようにしたらよいでしょうか?
文字の整数表現を見つけて、後でintの文字表現を見つけたいと思います。intに戻ってCharを返す
私の現在のソリューションは、このですが、それは動作しません:
String s = "A"
Integer b = Character.getNumericValue(s.toCharArray()[0]); // 10
char c = Character.toChars(b)[0]; // (blank)
は、私はこれをどのようにしたらよいでしょうか?
方法Character.getNumericValue(char)
作品に誤解があります。
指定されたUnicode文字が表すint値を返します。例えば、文字「\ u216C」(ローマ数字50)は、値が50のintを返します。
大文字の「AZ」(「\ u0041」〜「\ u005A」)、小文字'\ uFF3A'〜 '\ uFF7A'〜 '\ uFF5A')のフォームは、10から35までの数値を持っています。これはUnicodeに依存しませんこれらのchar値には数値を割り当てません。
java docs。 - 意味で「0」0を生成すること - 所与からないは、指定された文字のUTF-16値を生成するが、数値を生成する試みを行いgetNumericValue
方法:すなわち
値。 「A」は10進数で10に相当します。
しかし、10はではなく、 'A'に対応するUTF16値です。
char
を対応するUTF16値に変換する正しい方法は、Character
のcodepointメソッドの1つを使用することです。あなたは絶対に肯定している場合や、すべての値は、あなたも動作します。この場合Character.toChars(int)
で
char c = 'A';
int i = (int) c;
を使用することができ、BMPのものであろう。
int b = s.charAt(0); // 65
char c = (char) b // 'A'
'char c = s.charAt(0);'と書いた方が簡単でしょうか? –
もちろん、私はOPが取っていたステップに答えようとしていました。 –
ちょうど 'Character.getNumericValue'ビットを抜けています... :) –
空白文字ではありません。改行文字は '\ u000a'です。 –
あなたが期待していることは明確ではありません。「c」には何があるべきだと思いますか? –
http://stackoverflow.com/questions/17984975/convert-int-to-char-in-java – Reimeus