csvファイル(バランスシート)のフォルダを解析しようとしていて、値から行名を分離しようとするまで、すべてがスムーズに上がっています。Javaのcsvファイルの解析に問題があります
前の行の最後のセルが、次の行の最初のセル(列Aの行名)と結合しているように見えます。ここで
File path = new File("/Users/Zack/Desktop/JavaDB/BALANCESHEETS");
for(File file: path.listFiles()) {
if (file.isFile()) {
String fileName = file.getName();
String ticker = fileName.split("\\_")[0];
if (ticker.equals("ASB") || ticker.equals("FRC")) {
if (ticker.equals("ASB")) {
ticker = ticker + "PRD";
}
if (ticker.equals("FRC")) {
ticker = ticker + "PRD";
}
}
Reader reader = new BufferedReader(new FileReader(file));
StringBuilder builder = new StringBuilder();
int c;
while ((c = reader.read()) != -1) {
builder.append((char) c);
}
String string = builder.toString();
ArrayList<String> stringResult = new ArrayList<String>();
if (string != null) {
String[] splitData = string.split("\\s*,\\s*");
for (int i = 0; i <splitData.length; i++) {
if (!(splitData[i] == null) || !(splitData[i].length() ==0)) {
stringResult.add(splitData[i].trim());
}
}
}
for (int i = 0; i < stringResult.size(); i++) {
int cL = stringResult.get(i).length();
for (int x = 0; x < cL; x++) {
if (Character.isLetter(stringResult.get(i).charAt(x))) {
System.out.println("index: " + i);
System.out.println(stringResult.get(i));
break;
}
}
}
は https://postimg.org/image/a9qc1qggz/ https://postimg.org/image/mvna7p7s3/
にこの問題を解決する方法上の任意のアイデアを何が起こっているかのいくつかの写真がありますか?
スプレッドシートの行名の前にスペースがあることに気付きましたが、これは問題の一部である可能性があります。
既存のライブラリを使用するのではなく、独自のCSVパーサーを作成する特別な理由はありますか? –
Zack csvReaderクラスを使用することを強くお勧めします。たぶんhttp://opencsv.sourceforge.net/ –
@マット本当の理由は本当に私はそれを試してみたかった。 – Zack