[英]Split string to specific array position c#
我有一種獨特的情況,我需要創建在零位位置為null的字符串數組,然后為其余位置創建一個拆分字符串。 例如,我要輸入以下字符串:
"this/\is/\a/\test/\string"
輸出以下結果
array[0] = null;
array[1] = "this";
array[2] = "is";
array[3] = "a";
array[4] = "test";
array[5] = "string";
我知道我可以用幾行代碼來實現笨拙的方式,但是我正在尋找一種優雅的方式來將字符串拆分為特定的數組位置,或者只是在其前面插入null。 位置0的空字符串也可以接受,但不理想。 有一個好的方法可以做到這一點嗎? 數組位置的數量將有所不同,因為輸入字符串將具有不同數量的我需要提取的參數。
在字符串前添加定界符,然后在拆分后將第一個元素設置為null:
string data = @"this/\is/\a/\test/\string";
string[] result = (@"/\" + data).Split(new[] {@"/\"}, StringSplitOptions.None);
result[0] = null;
我想您可以在要分割的字符串前加上“ / \\”。
(這將為您提供一個空字符串而不是null,您說這是可以的,但並不理想。如果要將第一個條目設置為null,則可以在事實之后執行此操作。)
如果您需要多次執行此操作,並且希望代碼看起來很整潔,或者您想要可變數量的前置null,則可以始終編寫自己的擴展方法:
public static class Extensions
{
public static string[] Split(this string input, string delimiter, int prependNullCount)
{
var defaultSplit = input.Split(new string[] { delimiter }, StringSplitOptions.None);
string[] result = new string[defaultSplit.Length + prependNullCount];
defaultSplit.CopyTo(result, prependNullCount);
return result;
}
}
然后您將使用該方法為:
string input = @"this/\is/\a/\test/\string";
string[] result = input.Split(@"/\", 1);
您可以在第一個索引處添加/ \\並以“ / \\簡單代碼分隔:
string input = @"this/\is/\a/\test/\string";
string[] result = (@"/\" + input ).Split(new[] {@"/\"}, StringSplitOptions.None);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.