カンマ区切りの値を持つ.csvファイルが提供されています。それらは"2016-03-23,106.129997,25703500"
の順で"date,price,volume"
の順に並べられています。パラメータには既にコードを検証するプログラムによって決定されるプリセット値があります。プログラムがランダムな日付を入力すると:"2016-03-23"
。コードは、日付と等しい.csvファイル内の場所を出力する必要があります。コードが入力と等しい日付を検出すると、その行の2番目の列(価格は倍数)のみが返されます。.csvファイルまたは文字列を比較して類似性をどのように比較しますか?
私がこれまでに撮影した手順は次のとおりです。
1.は、.csvファイルが含まれているパラメータを読みます。 .csvファイルの最初の列と日付パラメータを比較して、等しいかどうかを確認します。 (エコー)。このコードを生成するかどうか分かっていますが、.csvファイル全体が返されます。
2.文字列を含むParameterも.csvファイルであり、それが列であるかのように比較します。これで最初の問題が再現されますが、2つの.csvファイルを読み込む方法がわかりません。
質問:
私はダブルを返却する必要があります。私のコードでは、値の宣言が範囲外に設定されています。それを変換しようとすると:「ダブル引数には適用されませんタイプのメソッド
parseDouble(String)
(String[])
」はどのようにだけではなく、列、.csvファイル内の特定の部分を正確に特定することができますが、同様に行。 [1]と同様に行を決定するために使用される列を決定する場合
を.csvファイルの各行を生成しますforループを作成します。私は行われるべきだと思う何
public static double getPrice(String stockFileName, String date) { try { BufferedReader br = new BufferedReader(new FileReader(stockFileName)); String line = ""; String unparsedFile = ""; Double Price; while ((line = br.readLine()) != null) {} br.close(); String[] Ans = unparsedFile.split(","); for (String item: Ans) { if (Ans[1].equals(date)) { double aDouble = Double.parseDouble(Ans); return Ans; } } } catch(IOException ex) { System.out.println("Error"); } }
。各行を配列の文字列値に変換し、コードが日付と等しいかどうかをチェックします(列全体を生成しないようにする)。一旦行が決定されると、価格であるその行の[2]に戻ります。
ただし、パラメータが
String stockFileName
に既に設定されている場合、それは私は文字列内の行の[1]が日付と等しいかどうかチェックする必要がありますか?もしそうなら、単にその行の[2]を返しますか?
ライブラリを使用することはできません。 – Gintoki