/ / CharArrayから数を計算する - java、android、配列、文​​字列、char

CharArrayからの数を計算する - java、android、arrays、string、char

私は次のコードを持っている

 private static int getYear(char[] charArray)
{
return (int)charArray[0] * 1000 + (int)charArray[1] * 100 + (int)charArray[2] * 10 + (int)charArray[3];
}

この抜粋は、4要素のchar配列から数値を計算します。 「2015」から55343があります。

なにか提案を?

回答:

回答№1は2

運動の目的は使用することではないと仮定 String そして parseInt、あなたは文字を変換する必要があります "0""9" 数字に 09。これは文字を引くことによって行われます "0"だから、あなたは得る:

private static int getYear(char[] charArray)
{
return (charArray[0] - "0") * 1000
+ (charArray[1] - "0") * 100
+ (charArray[2] - "0") * 10
+ (charArray[3] - "0");
}

これは、Javaが文字列をUnicode文字で格納するためです。 Unicodeは、ASCII文字セットを(非常に)拡張したものです。

このウィキペディアのページにあるASCIIの印刷可能文字を見てください。 https://en.wikipedia.org/wiki/ASCII#ASCII_printable_code_chart

ご覧のとおり、の文字(グリフ)は 0 10進数値 48, 149、...、そして 957.

だから、キャスト char キャラクターと "0" 〜に int 値が得られます 48。それから私達は特性があるという事実に頼ります "0""9" 連続しているので、48(の値 "0")降伏します 09、それが私たちが欲しいものです。


回答№2については2
 private static int getYear(char[] charArray)
{
return Integer.parseInt(String.valueOf(charArray));
}

回答№3の場合は0
private static int getYear(char[] charArray){
return Integer.parseInt(new String(charArray));
}