시간표 받아와서 빈 강의실을 찾는 어플을 만드는 중인데,

기존 시간표를 output.txt로 받았습니다.

 

예를 들자면 대충 이런 식입니다..

 

IT대학1호관(공대10호관)-513 000000000111111111000000000111000000111111000000000000001111110111000000001111110111000000000000000000000011111100000000
IT대학1호관(공대10호관)-313 000011000111000011111111111000000000000011000000000000000000000011000000000000000011111100000000000000000000000000000000
IT대학1호관(공대10호관)-103 111111000111000111000000111111000111111011111111000111000000111000000000111111000111111000000000111000000111000000110000

 

첫번째 줄의 513은 강의실명이고 뒤에 길게 나열된 0과 1은 수업이 있냐 없냐를 표시하는 데이터입니다.

앞에서부터 차례로 24개의 숫자는 월요일날 1A~12B까지 , 그 다음 24개는 화요일 날 1A~ 12B , ... 이런식으로해서 금요일까지되어

있습니다.

513과 뒤의 길게 나열된 숫자는 txt 파일에서 \n으로 구분된게 아니라 공백으로 구분되어 있습니다.

 

이 text 파일의 데이터를 받아서

공백을 전후로 공백의 앞부분으로는 강의명으로 String 변수에 저장하고

그리고 뒤에 길게 나열된 숫자는 차례대로 24개씩 5번 잘라서 요일에 맞춰 타임별로 boolean 변수로 저장하고 싶습니다.

 

그 두개의 변수는 RoomState 라는 class 안에 public 변수로 이미 선언해 두었습니다.

 

문제는!! 공백을 전후로 어떻게 구별할 것인지...

 

 

LinkedList<RoomState> blankRoomState = new LinkedList<RoomState>();
     
     byte data[] =null;
     FileInputStream timetable;  // 파일입력스트림
     
     
     try{
        timetable = openFileInput("output.txt");
        data=new byte[timetable.available()];
  
  while((timetable.read())>=0){
   RoomState tempRoomState = new RoomState();
   String tempRoomName = new String();
   
   while(timetable.read(data)!=-1){
    timetable.read(data);
    String str=new String(data);

          while(!str.getBytes().equals("\n")){  //줄단위로 구분하고 싶은데;;
                         while((str.getBytes().equals("\\p{Space}")))   // 나름 공백 구분한다고 썼습니다.
                  {   tempRoomName+=str.getBytes().toString();
                   }
    tempRoomState.roomName=tempRoomName;
    
    // room 당 시간표 지정
    
    for(int i=0; i<5; i++){
     for(int j=0; j<24; j++){
      if(str=="1"){
      tempRoomState.timeTable[i][j] = true;  // true이면 강의 있음
      }
      else{
      tempRoomState.timeTable[i][j] = false; // false이면 빈 강의실이다.
      }
    }
    
    blankRoomState.add(tempRoomState);
    
   }
   }
  } timetable.close();
  }} catch(Exception e){
   Log.e("Open Error","NOT Found File");
  }


문제는 공백을 어떻게 구분시켜서 String 변수를 어떻게 저장시킬까 하는 점인데

좋은 방법이 없을까요?

 

 

 공지사항 다 읽었습니다!!