2011-02-17 4 views
14

A = B & C = D & E = F와 같은 문자열이 있어야합니다. C = D 부분을 제거하고 A = B와 같은 문자열을 얻는 방법 & E = F?문자열 부분을 효과적으로 제거하는 방법

+1

보다 구체적으로는 입력 문자열에 대한 가정 및 제거 할 부품을 결정하는 규칙이 있습니다. 이 예제는 "아무것도 제거하지 말고 상수 문자열"A = B & E = F "대신"을 사용하는 등 사소하고 도움이되지 않는 제안을 제공합니다. –

답변

30

어느 그냥 멀리 교체합니다. 같은

var testString = "A=B&C=D&E=F" 
var stringArray = testString.Split('&'); 
stringArray.Remove("C=D"); 
var output = String.Join("&", stringArray); 

뭔가 : 나는 당신이 확실이 상황에 뭔가하지만,이 같은 일이 그렇게해야 할 명확한 예를 들어 줄 필요가 있다고 생각

var input = "A=B&C=D&E=F"; 
var output = input 
       .Split(new string[] {"&"}, StringSplitOptions.RemoveEmptyEntries) 
       .Select(s => s.Split('=', 2)) 
       .ToDictionary(d => d[0], d => d[1]); 

output.Remove("C"); 
output.Select(kvp => kvp.Key + "=" + kvp.Value) 
     .Aggregate("", (s, t) => s + t + "&").TrimRight("&"); 
1

당신은 분할 중 하나를 수() 및 수동 또는 simly하려면 string.replace (String.Empty로)을 & 분리에

1

분할 사용 (데이터가 어떻게 보이는지 따라)에 가입, 몇 가지로 C=D 부분을 제외 메커니즘을 선택하고 나머지 두 개를 결합 하시겠습니까? String 클래스는 분할, 결합 및 하위 문자열 일치를 포함하여 필요한 메서드를 제공합니다.

input.Replace("&C=D", ""); 

또는 데이터 구조에서 제거하고 다시 함께 참여, 솔루션 중 하나가 이전 질문을 형성 사용

2

:

내 코드를 사용하여 작동해야하며 꽤 동적이어야합니다.

3
using System.Web; // for HttpUtility 

NameValueCollection values = HttpUtility.ParseQueryString("A=B&C=D&E=F"); 
values.Remove("C"); 
values.ToString(); // "A=B&E=F" 
+4

질문에 URL 매개 변수가있는 것 같아서 HttpUtility쪽으로 향하게하는 것이 좋습니다. – Wilka

0
string xyz = "A=B&C=D&E=F"; 
string output = xyz.Replace("&C=D",""); 

출력 : A = B & E = F

관련 문제