2013-06-29 3 views
1

특정 값을 얻을 :문자열을 구문 분석하고 나는이 같은 문자열이

_id : 2 thread_id : 189 주소 : 0292 m_size : 널 (null) 사람 : 0 날짜 : 1372494272447 date_sent : 0 프로토콜 : 0 읽기를 : 1 상태 : -1 유형 : 1 reply_path_present : 0 제목 : null 본문 : 확인. 답장 메시지. 잠김 : 0 sim_id : 0 오류 코드 : 0 보이는 : 1 _id : 1 thread_id : 189 주소 : 292 m_size : null 사람 : 0 날짜 : 1372493695831 date_sent : 0 프로토콜 : null 읽기 : 1 상태 : -1 type : 2 reply_path_present : 널 (null) 제목 : 널 (null) 몸 : 테스트 메시지 service_center : 널 (null) 잠금 : 0 sim_id : 0 ERROR_CODE : 0 볼 수 : 0

내가이 문자열의 일부만 검색 할, 예를 들어 주소 : 0292본문 : xyz 전체 문자열에서. 나는 위의 두 문자열의 모든 인스턴스가 매우 큰 String (위의 예제 일뿐입니다)에서 원합니다. 그것의 20000 개 이상의 문자를 가정 해 봅시다.

어떻게하면됩니까?

+0

StringTokenizer를 사용하십시오. 20K 문자의 순서는 아직 크지 않고 여전히 100K 미만입니다. 토큰 화하는 것조차도 여전히 1/4 메가 미만의 메모리입니다. –

+0

샘플 코드 pliss : p 나는 split을 사용하여 배열을 검색하려고했지만 최선의 접근 방식처럼 들리지는 않습니다. – Asim

답변

0

모든 addressm_size는이어서 이렇게 선택한 다음 키워드 address 위에 분할은 string.split() 함수를 사용한다 닮은 string.substring() (결과의 배열의 각 열로부터) 키워드 m_size 도달 할 때까지. 키워드 bodyservice_center에 대해 전체 내용을 반복하십시오. 나는 다른 어떤 생각도 할 수 없다.

0

네가 맞아, 꽤 보이지 않아. 하지만 작동합니다 :

String[] splitString = string.split(" "); 
for (int i = 0; i < splitString.length; i++) { 
if (splitString[i].startsWith("body") || splitString[i].startsWith("address")) 
    Log.i(TAG, "Found: " + splitString[i]); 
    // Do whatever you need to do 
} 
관련 문제