2017-06-06 4 views
0

Iは以下BigInteger class、そのコードでJava Char配列の使い方は?

import java.math.BigInteger; 

public class Main 
{ 
    public static void main (String[] args) 
    { 
     BigInteger num = new BigInteger("123456789101112131415"); 

     String str; 
     char []Char = new char[10]; 

     str = num.toString(); 
     Char = str.toCharArray(); 

     System.out.println(str.length()); 
     System.out.println(Char.length); 
    } 
} 

に関連付けられたJavaコードを持って、私は21桁を有するBigInteger NUMを有します。私はそれをStringに変換してからChar arrayに変換します。しかし、私はその文字配列の長さを割り当てる前にわずか10です。では、このchar配列はどのようにして21文字を保持しますか?

私は本当に誤解しています。

もう1つの質問は、BigIntegerをchar配列に直接変換する方法はありますか? :)

+2

'Char = str.toCharArray();'はどういうのですか? –

+0

文字列をchar配列に変換しますか? 申し訳ありませんが、私が間違っている場合は私を許してください。私はJavaで新しいです。 :) –

+2

私は言い換えると、それは変数 'Char'に何をすると思いますか? –

答えて

3

最初の質問に答えるには、変数Char(変数名の変更を検討する)はchar配列への参照です。しかし、後で、おかげです...

Char = str.toCharArray(); 

...参照ポイントを別の配列にしています。元の配列には関連する参照がなくなり、ガベージコレクションされます。

2番目の質問に答えるには、関数を1行にカスケードすることができます。

char[] Char = num.toString().toCharArray(); 
+0

それは私のために良いこと! :D 最後に何かを学んだ:) –

+1

OPとして、おそらくOPがコードの動作を期待していたように、上位10桁のみを取得するには、['Arrays.copyOf(num.toString()。toCharArray ()、10) '](http://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#copyOf-char:A-int-)を参照してください。私はここでそれを行う特別な理由はありませんが、それは言及する価値があると思います。 – Radiodef

+0

@Radiodef pleasure :) –

関連する問題