如何解释没有任何分割点的控制台值?

时间:2017-03-15 17:55:34

标签: c# split console-application

我有一个控制台应用程序,我在这里推算价值观。尝试模拟一个游戏,我有一个向前,向后,向右和向左移动的对象。

对象向前移动,向左和向后移动的顺序是值被输入的顺序。

这些值是简单的值,例如:

Forward:  F 
Backward: B
Right:    R
Left:     L

我在控制台中输入这些值的方式是:

  

F R B L

注意:我在这些值之间输入这些值,然后在代码中我这样做:

string input = ReadInput();
string values [] = input.split(' ')

我试着弄清楚如何在不分裂空间的情况下做到这一点?

如果输入以下值,我怎么能使它工作?

FRBL

我原来的尝试工作正常,但我很好奇我怎么能以另一种方式做到这一点而且我无法弄明白。

4 个答案:

答案 0 :(得分:4)

不需要通过源字符串分割字符串,只需foreach,然后逐个字符地查看它:

foreach (char c in input) {
   switch (c) {
       case 'F':
          //do something;
          break;

   }
}

答案 1 :(得分:2)

只需将字符串视为char值数组即可。删除使用ToArray()的所有空格:

string input = ReadInput();
var moves = input.Replace(" ", "").ToCharArray();

foreach(char move in moves)
{
    switch(move)
    {
        case 'F': 
            MoveForwards();
            break;
        case 'R': 
            MoveBackwards();
            break;
        //etc...
    }
}

答案 2 :(得分:1)

你可以使用for循环迭代每个字符:

string input = ReadInput();
char values[] = new string[input.Length]
for(int i = 0; i < input.Length; i++)
    values[i] = input[i];

答案 3 :(得分:1)

正如其他人所说,您可以将字符串视为一个字符数组,因此您不必担心分割字符串。

另一方面,您还可以使用script直接读取字符输入:

header
相关问题