텍스트 상자에 일련의 16 진수를 입력하고 사용자가 각 바이트를 쉼표로 구분할 때 사용합니다. AAFFBCEE는 AA, FF, BC, EE가됩니다 (마지막 바이트에는 쉼표가 없습니다). 문자열 값을이 형식으로 변환하려면 어떻게해야합니까?16 진수 문자열을 쉼표로 구분 된 16 진수 문자열로 변환합니다. C#
답변
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 += ",";
}
일반적으로 루프에서 문자열 연결을 사용하는 것은 나쁜 형식입니다. 입력 문자열이 매우 짧은 경우에는 괜찮을 수 있습니다. 하지만 그렇지 않으면 [StringBuilder.Append (string, int, int)'] (http://msdn.microsoft.com/en-us/library/kc12ydtf(v=vs.110) .aspx)를 사용해야합니다. 대신에 과부하. –
우리는 스트림이 아닌 TextBox에 대해 이야기하고 있습니다 ... -1 감사합니다. – LPs
당신은 천만에요. 'TextBox'는 여기에 잘못된 구현을 사용하기에 충분한 텍스트를 쉽게 포함 할 수 있습니다. 어쨌든 잘못하지 않는 것보다 올바르게하는 것이 더 힘들지 않으므로 대신 좋은 예를 제공 할 수있을 때 문자열을 작성하는 방법에 대한 나쁜 예를 추가하십시오. 투표를 원하지 않는다면 _good_ 답변을 작성하십시오. 충분히 쉽습니다. 나는 이미 너에게 말했어. 당신이 한 것은 당신이 준 응답을 편집하는 것뿐입니다. –
왜 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에 그렇게 좋은 배우는 중이에요)
이 구글을 사용하고 MAC 주소와 진수 형식을 검색하십시오. 그래서 질문들로 가득 차 있고 16 진수 형식에 대한 답변도 있습니다. – Paebbels
고정 된 크기의 청크로 문자열을 분할하려면 [this] (http://stackoverflow.com/questions/1450774/splitting-a-string-into-chunkks-of-a-certain-size)를 참조하십시오. 쉼표를 추가하고 새 문자열을 생성하려면이 String.Join (",", stringChunks.ToArray())를 사용하십시오. – Dialecticus