2016-04-06 16 views
-2

それは学校のラボの一部です。私は調査しましたが、この作業を達成するための何かを見つけることができません。私はFileReaderとBufferedReaderを使ってファイルから行を読み込んでいます。Javaでは、文字列をDouble(Double以外)に変換するにはどうすればよいですか?

ジョン雌ジカ20

ジェーンの雌ジカ30

など私はすでになどの各ラインとスプリットを取るコードを持っています。ファイル内のデータは、名前と次の形式での年齢です。 split [0] = {"John"、 "doe"、 "20"}

double [0] = 20などの倍数の配列に "20"を格納する必要があります。

ダブルではなくダブルでなければならない理由は、割り当てのコードの部分が既に書かれているためです。私はすべてを変更してDoubleを代わりに使用することはできないと確信しています。これどうやってするの?前もって感謝します!

+4

Double.parseDouble(yourString) – Eran

+1

そして、あなたはナノ秒に倍増するとダブルから行くことができ、そのためには、他のを取得する方法を疑問に思う理由にはなりません。 –

+1

あなたはJavaで 'autoboxing'と' unboxing'を読むべきです。 Doubleとdoubleの間には事実上問題はありません。 –

答えて

6

Double#parseDoubleを使用してください。

あなたは、静的メソッドは、プリミティブdoubleはなくオブジェクトDouble返す見ることができるように:

public static double parseDouble(String s) 

public static void main(String[] args) { 
    String strNumber = "20"; 
    double myParsedDouble = Double.parseDouble(strNumber); 

    System.out.println(myParsedDouble); 
} 
0

をあなたはループのためにそれを取得し、反復を開始することをお勧めします。..私はそこにいくつの一致があるかわからないので(したがって配列を設定することはできません)、私はListを使ってデータを操作します。

String[] startingArray; // Whatever you put in here 
List<Double> endingList = new ArrayList<Double>(); 
for (String element : startingArray) { 
    try { 
     endingList.add(Double.parseDouble(element)); 
    } catch (NumberFormatException e) { 
     // do nothing if it doesn't parse 
     // note that catching exceptions do not have an adverse effect on performance 
    } 
} 

// Either, if you want it in a Double[]... or 
Double[] endingArray = endingList.toArray(new Double[endingList.size()]); 

// If you want a double[], start iterating... 
double[] endingArray = new double[endingList.size()]; 
for (int i = 0; i < endingList.size(); i++) { 
    endingArray[0] = endingList.get(0); 
}