2016-12-25 4 views
-5

문자열 수정 :Linq를 분할하고 같은 나는 string.It 보이는이

데이터 = "DA00VB0012004500890044010000000700000004000000 0000 010000001"를;

data = "DA00NM0012002700890032010000000700000004000000 1A000001A 0000";

해당 문자열을 분할하고 수정해야합니다. 여기

public string Getstring(string value, int start = 47, int end = 54) 
{ 
    string spstart = string.Empty; 
    string spend = string.Empty; 
    start = start - 1; 
    end = end + 1; 
    if (value != string.Empty) 
    { 
     var mem = value.Substring(start, end - start); 
     spstart = mem.Substring(0, 2); 
     spend = mem.Substring(mem.Length - 2, 2); 
    } 
    if(spstart.Trim().Equals(spend.Trim()) 
    { 
     return mem; 
    } 
    return "not found"; 
} 

내가 얻은 결과입니다 : 여기
내 코드 첫 번째 문자열

01 00000 01
두 번째

1A 1A
같은 시작 : 01 01 또는 1A 1A로 시작과 끝을 볼 수 있습니다.

내가 얻고 싶은 최종 결과 :

01 00000 01 ->0 ℃ 00000 0 ℃

1A 00000 1A를 ->0 ℃ 00000 0C

data = "DA00VB0012004500890044010000000700000004000000 0C 0C 0000";

문자열의 시작과 끝을 바꾸고 싶습니다. 그리고 그때에는 getString에 대한 짧은 방법을 찾고 있어요 0 ℃ 00000 0 ℃

와 문자열에 01 00000 01 또는 1A 00000 1A를 교체하고 내가 원하는 것을 얻을. Linq와 Regex를 살펴보고 있습니다. 감사합니다. 나는 그들을주의 깊게 읽었다. 나는이 주제를 삭제하지 않을 것입니다. 해결 방법이 있으면 투표 할 것입니다. 감사합니다.

+5

출력 내용을 설명해주세요. – DarkKnight

+1

찾고있는 두 문자열, 즉 "01"이 동일하므로 "0C"또는 "15"로 대체 할 때를 어떻게 알 수 있습니까? 두 번째 라인을 추측하고 있습니다. 최종 결과는'1A000001A -> 150000015'입니까? 이게 사실이라면 ... string.substitute? – JohnG

+0

0C와 15는 16 진수 값입니다. 맞습니다! 두 번째 줄 최종 결과. 그것은 1A000001A -> 150000015 @ JohnG – Jandy

답변

1

귀하의 의견에 너는 무엇을 의미하는지 모르겠다 몇 가지 방법을 너무 많이 할 수 ??? 다음은 설명하는대로 문자열을 대체하는 방법입니다. 당신의 질문이 매우 간단한 문자열 대체 문제이기 때문에 당신이 달성하고자하는 것에 대한 일반적인 이상을 모두에게주는 것이 더 나을 것입니다. 아래 표시된 문자열을 대체하십시오.

String s1 = "010000001"; 
    String s2 = "1A000001A"; 

    String s3 = s1.Replace("01", "0C"); 
    String s4 = s2.Replace("1A", "15"); 

    Console.WriteLine(s1 + " -> " + s3 + "\n\r" + s2 + " -> " + s4); 
    Console.ReadKey(); 
+1

JohnG에게 감사드립니다! 바꾸기를 사용합니다. 단순한 방법입니다. 모든 sames를 대체하십시오. 주제의 맨 위에는 Getstring의 짧은 길을 찾고 있습니다. @ JohnG – Jandy

관련 문제