拆分字符串数组
本文关键字:数组 字符串 拆分 | 更新日期: 2023-09-27 18:29:17
我正在尝试拆分一个字符串数组,其中每个字符串都有","作为分隔符。我使用regex作为新行模式,在前面的拆分之后获得了字符串数组。输入来自文本文件,这里是文本文件中的模式。
我的文本文件的内容
"first", "second"
"third", "fourth", "fifth"
"Sixth", "seventh"
第二个文本文件
"Color.auto", "(current == ff) && (current == 00)"
"Color.auto", "(current == ff) ? ((Current > 0) && (current < 10))"
创建一个按换行符拆分的字符串数组的代码。
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());
}
我面临的问题是,我无法在"上拆分字符串,进一步使用"拆分"。我相信这是由于我试图拆分的字符串数组。
只需使用String.Split和StringSplitOptions参数:
string[] tokens = data.Split(new char[] { ''r', ''n', ',', ' ', ''t' }, StringSplitOptions.RemoveEmptyEntries);
这将使用您的单个字符串,并根据所有换行部分以及所有逗号对其进行拆分。我也加入了空格和制表符,不过如果你不想要它们,你可以删除它们。
第二个参数是为了不返回空令牌,例如在''r'
和''n'
之间。
EDIT根据您的第二个文件,您不想删除空白,尽管看起来您可能确实想删除引号。在这种情况下,您的线路如下。(我把它分成两行,只是为了让它看起来更整洁。)
char[] delimiters = new char[] { ''r', ''n', ',', '"' };
string[] tokens = data.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
//Functional style
var tokens = File.ReadLines(file)
.SelectMany(line => line.Split(',')) //split lines on commas
.Select(token => token.Trim(' ')) //remove spaces around tokens
.Select(token => token.Trim('"')); //remove quotes around tokens
//Query style
var tokens = from line in File.ReadLines(file)
from token in line.Split(',')
select token.Trim(' ').Trim('"');
请注意,只有当文件中引用的字符串不包含逗号时,这才有效。如果他们这样做了,您将需要研究使用regex。