2017-12-01 102 views
0

私はJavaでK最近隣を実装することになっています。 2 csvファイルでこれを行う。 1つは訓練であり、1つはテストであり、どれだけの人が稼いでいるかについての国勢調査データを含んでいます。私はスキャナやファイルリーダーを使用してこれらのファイルからキー情報を取得する方法を理解していないJavaでCSVファイルからデータを抽出するには

meta data: age, workclass, fnlwgt, education, education-num, marital-status, occupation, relationship, race, sex, capital-gain, capital-loss, hours-per-week, native-country, earns 

example 1: 25, Private, 226802, 11th, 7, Never-married, Machine-op-inspct, Own-child, Black, Male, 0, 0, 40, United-States, <=50K 

example 2: 38, Private, 89814, HS-grad, 9, Married-civ-spouse, Farming-fishing, Husband, White, Male, 0, 0, 50, United-States, <=50K 

ファイルのいくつかの例は、(これは、それがファイルであるかを正確にある)であります例えば、私が一人一人がシンプリストで働いていただけの時間が欲しかったとします。あなたもKNNでこれを実装する方法の基本的なアウトラインを持っている場合は

は...すべてのルールを破るか、事前に質問をするかどうかは、完全な理解していないために残念

をappericatedされるだろう。

+0

可能重複:[ANSWER1]参照(https://stackoverflow.com/questions/14274259/read-csv-with-scanner)および[ANSWER2(https://stackoverflow.com/questions/19931929/reading-a-csv-file-using-javaから) –

+0

自分でCSVを解析しないで、ライブラリを使って解析してください。この複製には、Apache Commons CSVが記載されています。もう一つはopencsvです。 – DwB

答えて

0

FileReaderをBufferedReaderにラップし、分割( "、")またはスキャナを使用して行単位で読み取り、トークン化することができます。多分このような何か?

public void readCsv() throws IOException { 
    File file = new File("filename.csv"); 
    FileReader fileReader = new FileReader(file); 
    BufferedReader bufferedReader = new BufferedReader(fileReader); 
    String line; 
    String[] tokenizedLine; 

    while ((line = bufferedReader.readLine()) != null) { 
     tokenizedLine = parse(line); 
     // do stuff with your array 
    } 
} 

private String[] parse(String line) { // use split or Scanner 
    return line.split(","); 
} 
関連する問題