CSVファイルから入力を読み取るプログラムを作成しましたが、成功しました。しかし、私は1つの特定の行を選択する必要があり、私は別の行から1つの値を減算したい。 1行の処理にはどうすればよいですか。 これは私が得た出力は、タスクが誰も私を助けることができる私は、ABC の販売量からABCの購入量を減算する必要があるjavaで入力されたCSVファイルから特定の値の行を選択して計算する方法
Stock Id|Side|Company|Quantity|
--------|----|-------|--------|
1 |Buy |ABC |10 |
--------|----|-------|--------|
2 |Sell|XYZ |15 |
--------|----|-------|--------|
3 |Sell|ABC |13 |
--------|----|-------|--------|
4 |Buy |XYZ |10 |
--------|----|-------|--------|
5 |Buy |XYZ |8 |
ある
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Readline {
private static String slide;
private static Iterable<String[]> rows;
/**
* @param args
*/
public static void main(String[] args) {
String fileName = "C:/Users/USER/Documents/SOES - Input.csv";
ArrayList<Integer> margins = new ArrayList<>();
BufferedReader br;
String line, token = null;
int i;
try {
br = new BufferedReader(new FileReader(fileName));
try {
while ((line = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(line, ",\"");
i = 0;
while (st.hasMoreTokens()) {
token = st.nextToken();
if (margins.size() <= i) {
margins.add((Integer) token.length());
} else {
margins.set(
i,
Math.max(margins.get(i),
(Integer) token.length()));
}
i++;
}
}
br = new BufferedReader(new FileReader(fileName));
while ((line = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(line, ",\"");
i = 0;
while (st.hasMoreTokens()) {
token = st.nextToken();
System.out.print(token);
for (int j = 0; j < margins.get(i) - token.length(); j++) {
System.out.print(" ");
}
System.out.print("|");
i++;
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
を書いたコードです。 .. ??
減算後のみ保存しますか?あなたの望む結果は何ですか?いくつかのサンプルを与える。 – YuVi
在庫ID、サイド、会社、数量 1、購入する、ABC、10,0、閉鎖 2、販売、XYZ、15,0、閉店 3、販売、ABC、13,3、オープン 4、 XYZ、10,0、クローズド 5、購入、XYZ、8,3、オープン – vishnu