2014-02-14 2 views
0

문제를 해결하는 데 문제가 있습니다. 나는 이미 그 해답을 찾을 수 있었는지 알아보기 위해 수색을했는데, 문제를 더 분명하게 이해하는 데 도움이되는 것을 찾지 못했습니다. 래퍼를 사용할 때 핵심적인 부분을 놓치고 있다고 생각합니다.java에서 URL의 입력 값을 읽고 값을 정렬합니다.

다음과 같은 문제가 있습니다. URL 클래스를 사용하여 아래 사이트의 입력을 읽어야합니다.

national weather service

나는 최소 온도와 일을 찾아야에 읽을되면. 온도와 요일은 변수가 될 것이므로이를 수집하고 저장하려면 ArrayList을 사용해야합니다. URL을 제외한 ArrayList, ScannerException을 사용해야하는 개별 부품을 알고 있습니다. URL을 읽을 때 필요한 값만 추출하는 방법은 무엇입니까?

파일의 입력을 읽어야합니까? 나는 아직도 내가 정사각형으로 돌아올 것이라고 생각한다. 날들과 온대를 다른 모든 것과 분리하려고합니다.

답변

0

나는 당신이 몇 가지를 놓치고 있다고 생각합니다.

먼저 URL을 읽지 않아도 의미가 아닙니다. HTTP 요청을 URL로 전송할 수 있으며이 URL에서 응답을받을 수 있습니다. 불행하게도 java.net.URL은 HTTP 요청을 보내지 않거나 HTTP 응답을 처리하지 않습니다. HTTP 요청을 보내려면 (응답을 받고 HTTP의 모든 특이 사항을 처리하는) Apache's HTTP Components과 같은 API를 살펴 봐야합니다.

URL을 보면 HTML이 포함 된 응답을받을 수 있습니다 (적어도 브라우저가 가져 오는 것). 당신은 그것을 파싱하기 위해 그곳에서 필요로 할 때 그것을 기억 속에 남겨 둘 수도 있습니다.

이제 파싱 응답이 가장 어려운 비트가 될 것입니다. 데이터는 monospace font을 사용하여 디스패치 용으로 포맷 된 것처럼 보입니다. 즉 멋진 멋진 열로 표시됩니다. 당신이 구문 분석을하는 방법 복잡한에 따라, 당신은 algorthm이 일치하는 열 간격을 사용할 수 있습니다

  • 는 응답 문자열 내의 데이터의 시작을 식별
  • ( =의 두 번째 행을 검색)
  • 은 데이터의 끝 부분 (다른 행 =)에 도달 할 때까지 열 10 및 11의 값을 복사 한 후 각 행을 반복하여 목록에 추가합니다.

작업이 완료되었습니다.

+0

감사합니다. 좀 더 검색을했고 내가 Http를 파싱해야한다는 것을 알았습니다. – mike

관련 문제