2010-12-05 6 views
1

나는 다음과 같은 데이터가 있습니다. 자바에서 문자열 파싱 - 어떻게해야합니까?

Maths abc10 4 def08 6 ; 
English hrd45 3 ngh05 10 ; . 

시작 부분의 단어가 열거도있는 키워드가

을, 다음과 같은 데이터는 사용자 이름과 로그인 쌍입니다 (이 무제한이 될 수있는 데이터 '.'; ''각 키워드에 의해 종료에 대한 데이터에 의해 종료

나는 스캐너 클래스를 사용하고 있지만, 다음과 같은 생성 할 수 있도록 내가 루프에 그것을 얻을 수 없습니다

Maths abc10 4 
Maths def08 6 
English hrd45 3 
English ngh05 10 

어떤 아이디어? 감사합니다.

+5

나에게 숙제를하는 것처럼 들립니다. 따라서 이미 가지고있는 코드 중 일부를 보여주십시오. – chzbrgla

+0

무엇을 시도 했습니까? 우리는 초능력이 아닙니다. 우리가 보지 않는 한 당신의 코드에 무엇이 잘못된 것인지 말할 수 없습니다. –

+0

작은 힌트 :'string.split (separator)'여러 번. –

답변

3

Map<String, Map<String, Integer> >에 모두 보관하십시오. 선을 따라 반복하면서 주제와 이름을 붙입니다. (루프는 여기에서 시작됩니다). 이름이 ;인지 확인하고 가능한 경우 종료하십시오. 점수를 집계 한 다음 Map<String, Integer>에 추가하십시오. 다음 이름을 붙잡 으십시오. (루프는 여기에서 끝납니다). 현재 Map<String, Integer>을 큰 Map<>에 추가 한 다음 다시 시도하십시오.

1

정규 표현식 java.util.regex을 살펴볼 수 있습니다. 숙제 인 경우 잘 알고 배우고, 상처를주지 않습니다. 이 일을 간단하게 말하면, 파서 방식으로 IMHO에 갈 가치가 없습니다.

관련 문제