なので、しばらくの間このシリーズをやってみるです。
今回実装したのは転置配列的な処理。
入力CSVを反転させるものです。
以下コード
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class CSVReverse {
private static final String DELIMITER = ",";
/**
* main
* @param args
* @throws FileNotFoundException
* @throws IOException
*/
public static void main(String[] args) throws FileNotFoundException, IOException, IOException {
FileReader fileReader = new FileReader("sampleData/examination.csv");
BufferedReader bufferedReader = new BufferedReader(fileReader);
ListsplittedList = new ArrayList ();
String line = "";
while ((line = bufferedReader.readLine()) != null) {
splittedList.add(line.split(DELIMITER));
}
String[][] splittedArray = splittedList.toArray(new String[splittedList.size()][]);
int row = splittedArray.length;
int column = 0;
if (row != 0) {
column = splittedArray[0].length;
}
String[][] transportedArray = new String[column][row];
// 行と列を反転させる
for (int i = 0; i < column; ++i) {
for (int j = 0; j < row; ++j) {
/**
* こうすれば
* 元行列[0][0] 変換行列[0][0]
* 元行列[0][1] 変換行列[1][0]
* 元行列[0][2] 変換行列[2][0]
* 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
* という感じに置き換えができる
*/
transportedArray[i][j] = splittedArray[j][i];
}
}
StringBuilder transportedString = new StringBuilder();
for (String[] transportedLineArray : transportedArray) {
for (int i = 0; i < transportedLineArray.length; ++i) {
transportedString.append(transportedLineArray[i]);
if (i != transportedLineArray.length - 1) {
transportedString.append(DELIMITER);
}
}
transportedString.append(System.getProperty("line.separator"));
}
FileWriter fileWriter = new FileWriter("resultData/transported.csv");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(transportedString.toString());
bufferedWriter.close();
}
}
たったこれだけなのに時間掛かり過ぎ。
もっと書かないといかんです。

0 コメント:
コメントを投稿