我试图拆分一个字符串数组,其中每个字符串都有","作为分隔符.我使用正则表达式对新行的模式进行了早期拆分后获得了字符串数组.输入来自文本文件,这里是文本文件中的模式.
我的文本文件的内容
"first", "second"
"third", "fourth", "fifth"
"Sixth", "seventh"
Run Code Online (Sandbox Code Playgroud)
第二个文本文件
"Color.auto", "(current == ff) && (current == 00)"
"Color.auto", "(current == ff) ? ((Current > 0) && (current < 10))"
Run Code Online (Sandbox Code Playgroud)
创建一个字符串数组的代码在新行字符上分割.
StreamReader sr = new stream reader(file.txt);
String data = sr.ReadToEnd();
String pattern = @"\r\n";
String[] result = regex.split(data, pattern);
foreach(string store in result)
{
String temp = store.split(",".ToCharArray());
}
Run Code Online (Sandbox Code Playgroud)
我面临的问题是我无法将字符串拆分为","进一步使用"拆分".我相信这是由于我试图拆分的字符串数组.
只需将String.Split与StringSplitOptions参数一起使用:
string[] tokens = data.Split(new char[] { '\r', '\n', ',', ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
这将使用您的单个字符串并根据所有换行符部分以及所有逗号将其拆分.我也投入了空格和制表符,但如果你不想要它们就可以删除它们.
第二个参数是这样的,你不会得到返回的空标记,例如在'\r'和之间'\n'.
编辑根据您的第二个文件,您不希望删除空格,虽然看起来您可能想要删除引号.在这种情况下,您的行将如下所示.(我把它分成两行,只是为了让它看起来更整洁.)
char[] delimiters = new char[] { '\r', '\n', ',', '"' };
string[] tokens = data.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)