c#检查字符串是否有某个单词

时间:2016-10-25 19:17:41

标签: c# vmware cosmos

我正在使用Cosmos制作一个简单的操作系统来理解它。 如果我想创建一个名为echo的命令行来回应用户的输入,首先我需要检查输入是否有" echo"在它面前。 例如,如果我输入" echo hello world",我希望我的VMware回应" hello world"因为echo是我的新命令行。

我尝试的是

String input = Console.ReadLine();
if (input.Contains("echo")) {
    Console.WriteLine(input} 
}

效率不高。首先,VMware说

IndexOf(..., StringComparison) not fully supported yet!

用户可以键入" echo"在他的字符串中间,而不是命令。

有没有有效的方法可以解决这个问题?

3 个答案:

答案 0 :(得分:1)

if(!string.IsNullOrEmpty(input) && input.StartsWith("echo"))
        {
            Console.WriteLine(input);
        }

您应该使用StartWith而不是Contains。最好首先检查string是null还是空。

答案 1 :(得分:0)

您可以使用空格拆分它,并检查开关。

String input = Console.ReadLine();
String[] input_splited = input.split(' ');
switch(input_splited[0]){
    case 'echo':
      String value = input_splited[1];
      Console.WriteLine(value);
      break;
    case 'other_cmd':
      String other_value = input_splited[1];
      break;
}

我希望它对你有用。 :)

答案 2 :(得分:0)

我发现你需要这样的东西:

       const string command = "echo";
        var input = Console.ReadLine();

        if (input.IndexOf(command) != -1)
        {                
            var index = input.IndexOf("echo");               
            var newInputInit = input.Substring(0, index);
            var newInputEnd = input.Substring(index + command.Length);
            var newInput = newInputInit + newInputEnd;
            Console.WriteLine(newInput);
        }

        Console.ReadKey();