私はJavaプログラミングが初めてで、CSVファイルを解析し、CSVファイルの正しい行を印刷するように指示されています。印刷された行には一意の第1列と第2列が必要であり、第3列には「いいえ」が含まれていなければならず、第4列には 以上の値があることが必要です。12.Java:CSVファイルの列を比較して特定の行を印刷する方法
合計5列あります。
また、CSVを解析するライブラリは使用できません。
private static String[] routerData;
public static void main(String [] args) {
// Input of file which needs to be parsed
String csvFile = "./sample.csv";
BufferedReader csvReader = null;
// Data split by ',' in CSV file
String line = null;
String csvSplitBy = ",";
try {
// Create the CSV file reader
csvReader = new BufferedReader(new FileReader(csvFile));
while ((line = csvReader.readLine()) !=null) {
routerData = line.split(csvSplitBy, -1);
System.out.println(routerData[0] + ", " + routerData[1] + ", " + routerData[2] + ", " + routerData[3] + ", " + routerData[4]);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (csvReader != null) {
try {
csvReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
編集サンプルCSV:
例えば、サンプルCSVファイルは次のようになります。
Name,IP,Working?,Version,Comments
name,0.0.0.0,No,11.2,Some GUI Bugs
name2,0.1.2.0,Yes,12.3,
name,0.0.1.0,Yes,12.2,Case broken,
name4,0.0.0.0,no,10.3
ここ
は、これまでの私のコードです
コードではCSVファイルを取得してから印刷する必要があります一意の名前(1列目)、一意のIP(2列目)、「いいえ」(作業中)という行が表示されます。 (3列目)と12以上のバージョン値。
どのようなデータ構造を使用すれば列を比較できるか分かりません。
私は何かアドバイスありがとうございます!
第1列と第2列は、相互に、またはCSVデータファイル全体の第1列と第2列に対して一意である必要がありますか? – DevilsHnd
@DevilsHnd完全なCSVファイルのためにユニークです。だから私はすべての要件に一致する場合にのみ、CSVファイルから正しい行を出力する必要があります。 –
その場合、@ Adil Khan、あなたの質問に対する私の答えをチェックしてください。 – DevilsHnd