데이터를 여러 배열 목록으로 분리하려고합니다. 나중에 코드에서 사용할 수 있습니다. 하지만 배열 목록에 내 데이터를 넣을 수는 없습니다.로컬의 파일에서 ArrayList에 출력을 넣는 방법
내 코드는 내 코드에서 찾을 수있는 다양한 필터마다 다른 주제 (예 : 물리, 화학)의 세 배열 목록으로 데이터를 분리하는 것입니다.
Public Class filter{
public static void main(String args[])
BufferedReader in= null;
BufferedWriter out= null;
String in_line;
String PrevRollNo= "";
int PrevDate= 0;
ArrayList<transaction> PhysicsList= new ArrayList<transaction>();
ArrayList<transaction> scList= new ArrayList<transaction>();
ArrayList<transaction> Chemistry= new ArrayList<transaction>();
try{
in = new BufferedReader(new FileReader(Path for input file));
File out_file= new File(Path for output file);
if(!out_file.exists())
{
(!out_file.createNewFile();
}
FileWriter fw=new FileWriter(out_file);
out= new BufferedWriter(fw);
while ((in_line=in.readline())!=null)
{
Transaction transact=new Transaction(in_line);
if(transact.RollNo.equals(PrevRollNo))
{
if(transact.subject.equals("Physics")&& transact.Prs_Date= PrevDate
{
PhysicsList.add(transact);
}
else if(transact.subject.equals("Physics")&&transact.wk_date != PrevDate}
Iterator<Transaction> it;
if(!transact.RoomNo.equals("102")&&!transact.lcl_RoomNo.equals("102");
{
it= scList.iterator();
while(it.hasnext())
{
Transaction sc= it.next();
if(sc.lcl_RoomNo.equals(transact.RoomNo) && sc.l1 equals(tansact.l1) && sc.l2 equals(transact.l2)
if(sc.marks==transact.marks)
{
transact.srsfound= true;
}
else
{
System.out.print.ln("not found");
}
scList.remove(sc))
out.write(in_line);
break;
}}}}
Static Class Transaction
{
Public String RollNo, Subject, RoomNo, lcl_RoomNo, l1, l2;
Public int wk_date, prs_date;
Public double marks , amt;
Public boolean srcfound, tgtfound;
Public Transaction(String in_line)
{
String [] SplitData= in_line.split("\\|");
RollNo = SplitData[1];
Subject = SplitData[4]
RoomNo = SplitData[5];
lcl_RoomNo = SplitData[6];
l1 = SplitData[7];
l2 = SplitData[8];
wk_date = SplitData[3];
prs_date = SplitData[2];
marks = Double.parsedouble(SplitData[9]);
amt = Double.parsedouble(SplitData[]);
srcfound = false;
tgtfound = false;
}
이 친절하게 귀하의 전문 지식에 도움이 :
Input data file:
1|150|20150328|20150406|Physics|1600|1600|2|68|92
2|152|20150328|20150406|Physics|1600|1500|2|68|89
3|153|20150328|20150406|Physics|1600|1500|2|68|60
4|155|20150328|20150406|Physics|1600|1600|2|68|72
5|161|20150328|20150406|Chemistry|1600|1600|2|68|77
여기 내 코드입니다.
현재 코드에서 변경 사항을 제안 해주십시오. 토큰에 익숙하지 않습니다. 감사합니다. – sareen
@sareen,'tokens'는 단지 문자열 배열입니다. 이 배열은 구분 기호 앞의 개별 단어를 포함합니다. – K139
@ K139 ... 다른 문제가 있습니다. 'transact.Prs_Date = PrevDate'를 사용하고 있습니다. int를주었습니다. PrevDate = 0 ; & PrevDate = transact.prs_date. 첫 번째 행과 마지막 행은 작동하지 않습니다. 이 일을 도와 줄 수 있습니까? – sareen