2014-12-19 2 views
-6

텍스트 상자에 일련의 16 진수를 입력하고 사용자가 각 바이트를 쉼표로 구분할 때 사용합니다. AAFFBCEE는 AA, FF, BC, EE가됩니다 (마지막 바이트에는 쉼표가 없습니다). 문자열 값을이 형식으로 변환하려면 어떻게해야합니까?16 진수 문자열을 쉼표로 구분 된 16 진수 문자열로 변환합니다. C#

+0

이 구글을 사용하고 MAC 주소와 진수 형식을 검색하십시오. 그래서 질문들로 가득 차 있고 16 진수 형식에 대한 답변도 있습니다. – Paebbels

+0

고정 된 크기의 청크로 문자열을 분할하려면 [this] (http://stackoverflow.com/questions/1450774/splitting-a-string-into-chunkks-of-a-certain-size)를 참조하십시오. 쉼표를 추가하고 새 문자열을 생성하려면이 String.Join (",", stringChunks.ToArray())를 사용하십시오. – Dialecticus

답변

1
string temp = "aaff4455"; 
    string temp2 = ""; 
    int size = temp.Length; 

    for (int i = 0; i < size; i += 2) 
    { 
     temp2 += temp.Substring(i, 2); 
     if ((i+2) < size) 
      temp2 += ","; 
    } 
+0

일반적으로 루프에서 문자열 연결을 사용하는 것은 나쁜 형식입니다. 입력 문자열이 매우 짧은 경우에는 괜찮을 수 있습니다. 하지만 그렇지 않으면 [StringBuilder.Append (string, int, int)'] (http://msdn.microsoft.com/en-us/library/kc12ydtf(v=vs.110) .aspx)를 사용해야합니다. 대신에 과부하. –

+0

우리는 스트림이 아닌 TextBox에 대해 이야기하고 있습니다 ... -1 감사합니다. – LPs

+0

당신은 천만에요. 'TextBox'는 여기에 잘못된 구현을 사용하기에 충분한 텍스트를 쉽게 포함 할 수 있습니다. 어쨌든 잘못하지 않는 것보다 올바르게하는 것이 더 힘들지 않으므로 대신 좋은 예를 제공 할 수있을 때 문자열을 작성하는 방법에 대한 나쁜 예를 추가하십시오. 투표를 원하지 않는다면 _good_ 답변을 작성하십시오. 충분히 쉽습니다. 나는 이미 너에게 말했어. 당신이 한 것은 당신이 준 응답을 편집하는 것뿐입니다. –

0

왜 1 라이너를 사용하지 않습니까?

var str = "AABBCCDD"; 
var result = ""; 

str.ToCharArray() 
     .Select((c, i) => new { i, c }) 
     .ToList() 
     .ForEach(c => result += (c.i > 0 && c.i % 2 == 0) ? "," + c.c : c.c.ToString()); 

는 (나는 아직도! Linq에 그렇게 좋은 배우는 중이에요)

+0

이것은 아주 좋은 해결책입니다! – LPs

+0

Aww a downy? 나는 완벽하지는 않지만 아래 표는 가혹한 것처럼 느낀다. S – ne1410s

+0

나는 너를 밀어 냈다.) – LPs