我有一个字符串如下:
Charlie Sheen很酷BBBB他喜欢跑BBB
他什么时候跑的?BBBB
他住在这里BBBB
?
[我喜欢查理辛 BBBB
我想将字符串分成两个不同的数组。一个是关于B&#39和S&B本身的短语。或者甚至更好,有一个字典,其中短语作为键,B作为值。我还想忽略所有不以字母开头的空行和行。我该怎么做呢?
string[] newText = file.Split(new string[] { "\n", "\r\n",},StringSplitOptions.RemoveEmptyEntries);
int count = 0;
Regex symbol = new Regex("^[[]]$"); //these are the symbols I want to detect
Dictionary<string, string> patternedText = new Dictionary<string,string>();
foreach(string s in newText){
int bCount = 0;
count++;
bCount++; //position of where it detects a match
if(symbol.isMatch(s)){
newText[count-bCount] = s;
}else{ newText[count] = s;
patternedText.Add(newText[count],newText[count+1]);
}
基本上我希望数组的格式为:
带符号的短语
BBB
带符号的短语
BBBB
短语
带符号的BBB
并过滤掉所有空行和任何行上的符号,只添加到短语中。
答案 0 :(得分:0)
以下是您可以做的事情:
答案 1 :(得分:0)
循环是一种理智而有效的方法,但如果你是一个LINQaholic:
var dictionary = file.Split(new[] {"\r\n", "\n"}, StringSplitOptions.RemoveEmptyEntries)
.Select((line, index) => (line, index))
.GroupBy(tuple => tuple.index / 2)
.ToDictionary(group => group.First().line, group => group.Last().line);