CSV 파일에서 데이터를 읽어야하고 2D 배열에 배치하는 편이 훨씬 좋습니다 (이 "일정"데이터로 작업하는 가장 쉬운 방법입니다) . 각 파일 라인은 다음과 같은 형식으로 정보를 포함 : 예를 들면 다음과csv 파일에서 데이터를 추출하고 2D 배열에 넣기 - 리팩토링
Instructor, Course, Group, Student, Result
같이
Paul Schwartz,Introduction to Computer Architecture,I1,Ben Dunkin,88
Muhamed Olji,Object Oriented Programming,I4,Mike Brown,73
을하지만 내 코드가 약간 단순화를 필요로한다. 그러나 나는 그것을 더 쉽게 만드는 방법을 모른다. 너.
코드 :
private String[][] fileContent(String pathToCSVFile) {
final int ROWS = 100;
final int COLUMNS = 5;
String fileData[][] = new String[ROWS][COLUMNS];
Scanner scanner = new Scanner(pathToCSVFile);
boolean done = false;
int i, j;
while (!done) {
for (i = 0; i >= 0; i++) {
for (j = 0; j >= 0; j++) {
String str[] = scanner.nextLine().split(",");
for (int element = 0; element < str.length; element++) {
fileData[i][element] = str[element];
if (i >= ROWS) {
Arrays.copyOf(fileData, fileData.length * 2);
}
}
}
}
if (!scanner.hasNextLine()) done = true;
}
return fileData;
}
- 어떻게 더 단순화를 위해이 코드 조각을 리팩토링하는?
- 부분적으로 채워진 배열 (
Arrays.copyOf(fileData, fileData.length * 2)
)에 대한 더 좋은 방법이 있습니까?
간단 함을 목표로한다면, '목록 lines = new CSVReader (reader) .readAll();'메서드가있는 openCSV와 같은 CSV 라이브러리를 사용하십시오. 하나의 라이너 (ok 아마 2)가된다. –
assylias
http://codereview.stackexchange.com/에서 이러한 질문을 게시하는 것을 고려하십시오. 사이트가 더 적합해야합니다. –
@assylias [이 방법을 시도] (http://pastebin.com/sfizSsuc)하지만 목록에서 배열로 변환하는 데는 약간의 문제가 있습니다. 어떤 제안도 여기에서 이용할 수 있습니다. –