c#读取文本字符串并对其作出反应
本文关键字:串并 读取 取文本 字符 字符串 | 更新日期: 2023-09-27 18:09:22
假设有一个名为"message"的字符串,并假设在控制台中有一个用户类型,
" !我的FB列表",但单词"FB"answers"列表"可以改变。但"!我的想法不会改变。我想把文本保存为用户类型。只有当用户使用"!"我的"在其他单词之前。
所以,我不知道如何得到这个'if'命令。请帮帮我。
if (message == "! "
你的意思是这样吗?
if (message.StartsWith("!My "))
{
// do something
}
这段代码在大多数情况下都有效。但是,如果您需要解决评论中提到的Kshitij Mehta
之类的情况,您可能最好使用Split
方法解析字符串并将数组的第一个对象与所需的字符串进行比较。当您将输入字符串分割成一个数组时,您只需以典型的方式(==)比较字符串,在这种情况下可能不需要花哨的方法。
还有一个需要考虑的"however"——如果你的输入字符串很长,拆分可能不是最好的主意。在这种情况下,我可能会使用正则表达式来比较输入字符串的开头。
实现取决于您的需要。选择最适合你的吧
听起来您想要接受命令,然后根据这些命令执行特定的操作。显然,"command"是用户输入的文本中的第一个单词。
因此,我将在空格处拆分消息,然后将第一个单词拆分为switch
:
var words = message.Split();
var command = words[0];
switch (command) {
case "!My":
// Do something
...
break;
case "!SomethingElse":
// Do something else
...
break;
...
}
之后,可以用words[1]
得到"FB",用words[2]
得到"list"。在尝试访问参数之前,一定要使用words.Length
来验证是否指定了所需数量的参数。
String类包含许多静态方法,StartsWith()
就是其中之一。
所以你的if语句可以简单地写成
if(UserString.StartsWith("!My"))
{
// other conditional code here
}
从你的问题中不清楚你是否想要包括用户在输入任何其他内容之前键入"!My"
的情况,但他/她在键入!My
后不立即键入空格。如果您只想在三个字符"!My"
后面跟着空格的情况下处理代码,那么(按照@Walther的建议),在StartsWith()
方法
if(UserString.StartsWith("!My "))
{
// other conditional code here
}