2014-02-07 4 views
0

Я ищу код C#, чтобы разделить очень большую строку (шестнадцатеричные значения) на куски размером 8 строк (массив строк), чтобы я мог по очереди превращать их в ints.Разделение очень большой строки

Значение строки шестигранного выглядит ...000000030000000800000002..., и я хочу их в 00000003, 00000008, 00000002 и т.д.

Очень высокая оценка!

+0

Обратите внимание, что если ваша цель получить список 'int' и не разделять строку, вам лучше использовать подходы, предложенные в [Как преобразовать Byte Array в шестнадцатеричную строку] (http://stackoverflow.com/questions/ 311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-vers versa? Rq = 1), чтобы избежать создания (даже ленивого создания, как в двойном вопросе), в общей сложности. –

ответ

0

Я думаю, что это может быть, что вы ищете:

string sentence = "0000000100000002000000003"; 
string[] digits = Regex.Split(sentence, ".{8}"); 

Результат:

digits[0] = "00000001" 
digits[1] = "00000002" 
digits[2] = "00000003" 
+0

+0: Использование regex + создание большого количества строк в одно и то же время ... Вам нужно добавить объяснение регулярного выражения, которое вы используете, - не предполагайте, что все знают его синтаксис. –

+0

@AlexeiLevenkov, Обычно я соглашусь с вами и почти всегда буду выступать за итеративный путь, а не рекурсивный или в этом случае обычный способ выражения. Я все еще публикую этот сценарий, потому что кто-то еще опубликовал итеративный сценарий подстановки, поэтому я использовал этот этап, чтобы показать другую реализацию для этого сценария. –

1

это легко понять версии:

string x = "0000000100000002000000003"; 

List<string> a = new List<string>(); 
for (int i = 0; i < x.Length; i += 8) 
{ 
    if((i + 8) < x.Length) 
     a.Add(x.Substring(i, 8)); 
    else 
     a.Add(x.Substring(i)); 
} 

результат :

a[0] = 00000001; 
a[1] = 00000002; 
a[2] = 00000003; 
0

Вы можете использовать метод String.split на вашей строке следующим образом:

string longString = "10101010,10101010,10101010" 
string[] Array; 
Array = longString.Split(","); 

Чтобы получить разделенный запятыми строку, вы можете использовать @ Regex идеи Самира в.

+0

Или, может быть, это был String.Split (longString, ","); – vasilescur

Смежные вопросы