C#中一般的foreach都是从集合中自动循环读入一个元素进行操作,但是我现在想从左到右读入一个字符串,如果碰到'['号便进入另一个操作并使foreach的“指针”++往前移,知道碰到']'号就如下面代码描述foreach (char ch in this._input.ToCharArray())
{
switch (ch)
{
case '+':
case '-':
/////do someting
break;
case '[':
do{
///使ch往前移动
}while(ch!=']'); //////////////////.......
}
} 应该怎么做??我是C#新手,恳求答案!
{
switch (ch)
{
case '+':
case '-':
/////do someting
break;
case '[':
do{
///使ch往前移动
}while(ch!=']'); //////////////////.......
}
} 应该怎么做??我是C#新手,恳求答案!
foreach (char ch in this._input.ToCharArray())
{
if(bStart && ch!=']')
{
switch (ch)
{
case '+':
case '-':
/////do someting
break;
case '[':
bStart=true;
break;
case ']':
bStart=false;
break; //////////////////.......
} }
}
方法就叫MoveNext,
{
char ch = _input[i];
switch (ch)
{
case '+':
case '-':
///// do someting
break;
case '[':
while (i < _input.Length && _input[i] != ']') i++;
break;
////////////////// .......
}
}
修改设计 for (int i = 0l i < _input.ToCharArray().legnth; i++)
或者是
IEnumerator t = ._input.ToCharArray().GetEnumerator();
while (t.MoveNext())
{
char ch = (char)t.Current;
switch (ch)
{
case '+':
case '-':
break;
case '[':
do
{
if (t.MoveNext())
{
ch = (char)t.Current;
}
else
{
break;
} } while (ch != ']');
break;
}
http://www.cnblogs.com/JeffreyZhao/archive/2009/10/21/code-for-fun-tokenizer-answer-1.html趣味编程:从字符串中提取信息(参考答案 - 下)
http://www.cnblogs.com/JeffreyZhao/archive/2009/10/22/code-for-fun-tokenizer-answer-2-fsharp.html
{
char ch = _input[i];
switch (ch)
{
case '+':
case '-':
///// do someting
break;
case '[':
while (i < _input.Length && _input[i] != ']') i++;
break;
////////////////// .......
}
}