2014-10-29 3 views
0

서버에서 String 데이터를 아래 형식으로 가져옵니다. phonenumbername 등 모든 태그의 값을 가져 오려고합니다. 쉼표로 구분하여 배열로 변환 할 수 있습니다. 개별 값을 얻는 방법?문자열 처리하기

Company:Affiliated CO,Organization:TECHNICAL EDUCATION 
SOCIETY,Organization:SINHGAD,Organization:National Basketball Association,Person:Parikshit N. Mahalle,PhoneNumber:81 98 22 416 316,PhoneNumber:9120-24100154,Position:Professor,SportsEvent:NBA. 
+0

는 왜 어떤 구조로 당신에게 데이터를 얻을 수 JOSN 또는 XML을 사용하지? – rckoenes

+0

먼저 항목을 ","로 구분하고 각 항목의 이름/값을 ":"로 구분합니다. – zaph

답변

1

원래 문자열이 rawString에 저장되어 있다고합니다.

을 수행해야합니다

1

)는,이 배열의 각 항목에 대한 ,

NSArray *pieces = [rawString componentsSeparatedByString:@","]; 

2)에 의해 문자열을 분할 :하여 분할하고, 사전에 추가 :

NSMutableDictionary *dict = [NSMutableDictionary new]; 
for (NSString *piece in pieces) { 
    NSArray *splitPiece = [piece componentsSeparatedByString:@":"]; 
    // key is at splitPiece[0], value is at splitPiece[1] 
    dict[splitPiece[0]] = splitPiece[1]; 
} 

그런 다음 처음부터 원하는 내용의 사전을 갖게됩니다.

그러나 주석에서 제안한 것처럼 JSON 데이터를 수신하는 것이 훨씬 더 (더 융통성있게) 될 것입니다.

편집 : 원래 문자열에 Organization이라는 필드가 여러 개 있음을 보여줍니다. 제가 제공 한 코드는 그런 경우를 처리하도록 설계되지 않았습니다.

+1

여러 개의 "PhoneNumber"필드. – zaph

+0

감사합니다 @Cyrille는 시간 제비를 많이 구해 주셨습니다. – apple10

0

이 데이터가 JSON 개체로 반환되지 않으면 @Clyrille 응답과 함께 가야합니다. 그러나 만약 그것이 JSON라면 NSJSONSerialization:JSONObjectWithData:options:error: 가야 할 길입니다.

NSDictionary *json = [NSJSONSerialization 
         JSONObjectWithData:/*urlResponse*/ options:0 error:nil]; 

NSString *company  = [json objectForKey:@"Company"]; 
NSString *Organization = [json objectForKey:@"Organization"]; 
NSString *Person  = [json objectForKey:@"Person"]; 
NSString *PhoneNumber = [json objectForKey:@"PhoneNumber"]; 
NSString *Position  = [json objectForKey:@"Position"]; 
NSString *SportsEvent = [json objectForKey:@"SportsEvent"]; 
+1

이것은 OP의 질문에 대한 대답이 아닙니다. – Cyrille

+0

@Cyrille ** "개별 값을 얻는 방법"**을 읽었습니다. **. 데이터가 사실 JSON 응답 일 경우 내 대답에 개별 값이 표시되지 않습니까? –

+0

OP는 JSON이 아닌 예제를 제공합니다. JSON 인 경우 충돌하는 사전 키가 될 "PhoneNumber"및 "Organization"항목이 두 개 있고이 예제 코드가 유효하지 않으므로 유효하지 않습니다. 현재 구성표 대신 JSON을 사용하는 것이 좋습니다. – zaph