我正在尋找一個C#代碼來將一個非常大的字符串(十六進制值)拆分爲8個字符塊(字符串數組),以便我可以逐個將它們變成整數。拆分一個非常大的字符串
十六進制值的字符串看起來像...000000030000000800000002...
,我希望他們在00000003
,00000008
,00000002
等
非常感謝!
我正在尋找一個C#代碼來將一個非常大的字符串(十六進制值)拆分爲8個字符塊(字符串數組),以便我可以逐個將它們變成整數。拆分一個非常大的字符串
十六進制值的字符串看起來像...000000030000000800000002...
,我希望他們在00000003
,00000008
,00000002
等
非常感謝!
我想這也許你在找什麼:
string sentence = "0000000100000002000000003";
string[] digits = Regex.Split(sentence, ".{8}");
結果:
digits[0] = "00000001"
digits[1] = "00000002"
digits[2] = "00000003"
+0:使用正則表達式+同時創建大量字符串......您需要添加正在使用的正則表達式的解釋 - 不要假設每個人都知道它的語法。 –
@AlexeiLevenkov,通常我會同意你的觀點,並且幾乎總是會傾向於迭代方式而不是遞歸方式,或者在這種情況下是正則表達式方式。我仍然發佈這個場景,因爲其他人已經發布了迭代的'Substring'場景,所以我用這個階段來顯示這個場景的另一個實現。 –
這是一個很容易理解的版本:
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;
您可以使用String.Split方法上的串像這樣:
string longString = "10101010,10101010,10101010"
string[] Array;
Array = longString.Split(",");
要獲得逗號分隔字符串,你可以使用@薩米爾的正則表達式的想法。
或者它可能是String.Split(longString,「,」); – vasilescur
請注意,如果您的目標是獲取'int'列表並且不拆分字符串,那麼您最好使用[如何將字節數組轉換爲十六進制字符串]中提出的方法(http://stackoverflow.com/questions/ 311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-反之亦然?rq = 1),以避免中間字符串的創建(甚至是重複問題中的懶惰創建)。 –