2016-05-30 2 views
-2

文字の整数表現を見つけて、後でintの文字表現を見つけたいと思います。intに戻ってCharを返す

私の現在のソリューションは、このですが、それは動作しません:

String s = "A" 
Integer b = Character.getNumericValue(s.toCharArray()[0]); // 10 
char c = Character.toChars(b)[0];        // (blank) 

は、私はこれをどのようにしたらよいでしょうか?

+0

空白文字ではありません。改行文字は '\ u000a'です。 –

+0

あなたが期待していることは明確ではありません。「c」には何があるべきだと思いますか? –

+1

http://stackoverflow.com/questions/17984975/convert-int-to-char-in-java – Reimeus

答えて

0

方法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のものであろう。

0
int b = s.charAt(0); // 65 
char c = (char) b // 'A' 
+0

'char c = s.charAt(0);'と書いた方が簡単でしょうか? –

+0

もちろん、私はOPが取っていたステップに答えようとしていました。 –

+0

ちょうど 'Character.getNumericValue'ビットを抜けています... :) –

関連する問題