假设有一个名为“message”的字符串,并假设在控制台中有一个用户类型,
“!My FB List”,但单词“FB”和“List”可能会改变。但是“!我的”不会改变。所以,我想保存用户输入的文本。仅当用户在其他词之前使用“!我的”。
所以,我不知道如何将其用于“if”命令。请帮助我。
如果(消息==“!我的”
假设有一个名为“message”的字符串,并假设在控制台中有一个用户类型,
“!My FB List”,但单词“FB”和“List”可能会改变。但是“!我的”不会改变。所以,我想保存用户输入的文本。仅当用户在其他词之前使用“!我的”。
所以,我不知道如何将其用于“if”命令。请帮助我。
如果(消息==“!我的”
你的意思是这样的吗?
if (message.StartsWith("!My "))
{
// do something
}
此代码适用于大多数情况。但是,如果您需要解决Kshitij Mehta
评论中提到的情况,您最好使用Split
解析字符串并将数组的第一个对象与所需字符串进行比较的方法。当您将输入字符串拆分为一个数组时,您只需以典型的方式 (==) 比较字符串,在这种情况下可能不需要花哨的方法。
还要考虑一个“但是” - 如果您的输入字符串很长,那么拆分可能不是最好的主意。在那种情况下,我可能会使用正则表达式来比较输入字符串的开头。
实施取决于您的需求。只选择最适合您的:)
听起来您想接受命令,然后根据这些命令做特定的事情。显然,“命令”是用户输入的文本中的第一个单词。
因此,我将消息拆分为空格,然后拆分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]
获取“列表”。在尝试访问它们之前,请务必使用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
}