我有一个控制台应用程序,我在这里推算价值观。尝试模拟一个游戏,我有一个向前,向后,向右和向左移动的对象。
对象向前移动,向左和向后移动的顺序是值被输入的顺序。
这些值是简单的值,例如:
Forward: F
Backward: B
Right: R
Left: L
我在控制台中输入这些值的方式是:
F R B L
注意:我在这些值之间输入这些值,然后在代码中我这样做:
string input = ReadInput();
string values [] = input.split(' ')
我试着弄清楚如何在不分裂空间的情况下做到这一点?
如果输入以下值,我怎么能使它工作?
FRBL
我原来的尝试工作正常,但我很好奇我怎么能以另一种方式做到这一点而且我无法弄明白。
答案 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