2011-03-05 3 views
0

처음에는 사소한 문제로 보였지만 쉽게 해결할 방법을 찾지 못했습니다. 문자열 목록에 항목 목록을 저장할 수 있어야합니다. 그런 다음 해당 항목이 차례로 일 수 있습니다 목록, 또는 내 분리 문자을 포함 할 수있는 다른 값입니다. 나는 두 개의 다른 경우를 풀어 다른 두 가지 방법이 있지만 string.Split 함께 사용되는 모든 구분 기호 문자에서 포함 된 값을 인코딩 할 필요가 있음을 알게되었습니다. 값은 내가 세 가지를 얻기 위해 분할 할 수없는,중첩 된 문자열 분할을 만들려면 어떻게해야합니까?

string[] nested = { "mary;john;carl", "dog;cat;fish", "plainValue" } 
string list = string.Join(";", nested); 
string[] unnested = list.Split(';'); // EEK! returns 7 items, expected 3! 
이 목록을 생성 할 것이다

"plainValue, 존, 칼, 개, 고양이; 물고기 메리"

문제를 설명하기 위해 에서 원래 중첩 된 문자열. 실제로 원래의 3 개의 문자열 대신 7 개의 문자열이 나뉘어져 있으므로이 방법은 전혀 작동하지 않습니다.

내가 원하는 것은 내 문자열의 값을 인코딩하여 포장/결합하기 전에 내용을 포장/분리 할 수 ​​있도록 허용하는 것입니다. 문자열에서 벗어나야 할 수도 있습니다. 조각과 문자열. 조인과 그 것은 완벽합니다. 나는 단지 유용한 클래스 나 메소드를 간과했을 수도있다.

  • 문자열 값을 목록에 압축/압축 해제 할 수있는 방법은 무엇입니까?
    나는 가능하면 부피가 크고 깔끔하고 간단한 해결책을 선호합니다. 호기심 마음에 들어

, 내가 Unity3D에 PlayerPrefs에 대한 확장을하고, 나는 단지의 int로 작업 할 수는 수레와 문자열. 따라서 나는 데이터 캐리어가 될 문자열을 선택했습니다. 이것이 내가이 중첩 된 문자열 목록을 만드는 이유입니다.

+0

단순한 구분 문자 교체에 대한 많은 답변이있었습니다. 이것은 실제로 실행 가능하지 않으며, 너무 간단하고 너무 부서지기 쉽습니다. 이렇게하면 목록에있는 "모든"내용을 쉽게 허용하지 않을 것이고, 많은 특수 문자를 앞에 정의해야하기 때문에 깊은 중첩 목록을 잘 처리 할 수 ​​없습니다. 지금까지 Base64 인코딩은 값을 인코딩하여 각 항목에 대한 구분 기호 문자의 사용을 제거하기 때문에 최상의 후보였습니다. 나는 누군가가 이스케이프 문자 또는 유사한 것을 사용하여 해결책을 제시 할 수 있는지보고 싶습니다. 그렇지 않으면 Base64 응답이 유효한 해결책으로 받아 들여집니다. – Statement

답변

관련 문제