首页 > 解决方案 > C#在单词之后而不是在空格之后拆分输入

问题描述

Console.Write(currentDirectory + ">");
string commandinput = Console.ReadLine();
string userinput = commandinput.ToLower();
char[] delim = new char[] { ' ' };
string[] splitted = userinput.Split(delim);

string userinput1 = splitted[0];
string userinput2 = splitted[1];

这是我当前的代码。它有效,但我有一个问题。如果用户写“ping google.com”,一切都会被找到,我的 pinger 工作。但我也有一个清除控制台的命令“clear”。如果用户写“清除”它会给出一个错误:

“指数数组的边界之外。”

因为我没有写任何东西可以分割输入。我怎样才能改变它,它在第一个单词而不是空格之后分割输入?

感谢:D

标签: c#input

解决方案


你做的更像是:

string userinput1 = splitted[0];
string userinput2 = splitted.Length > 1 ? splitted[1] : null;

但请记住,如果您稍后尝试使用 userinput2 而不先检查它是否为空,那么您将收到 NullReferenceException


推荐阅读